WebDriver API中常用的方法和属性
方法:
clear() --->清除一个文本输入框
p:driver.find_element_by_id("kw").clear()
send_keys() -->来输入字符串
p:driver.find_element_by_id("kw").send_keys("Selenium")
click() -->点击页面上支持点击的元素
driver.find_element_by_id("su").clear()
refresh()-->刷新页面的方法
p: driver.refresh()
back()-->从百度新闻后退到百度首页
p:driver.back()
forward()-->百度首页前进到百度新闻
p:driver.forward()
from selenium.webdriver.common.keys import Keys
driver.find_element_by_tag_name(‘body‘).send_keys(Keys.CONTROL + ‘t‘) ---> 快捷键是 ctrl + t ,新开一个浏览器tab
driver.find_element_by_tag_name(‘body‘) .send_keys(Keys.CONTROL + ‘a‘) -->快捷键是 Ctrl+a,全选当前页面文字
element = driver.find_element_by_id(‘kw‘)
element.send_keys("Selenium automation")
element.send_keys(Keys.BACKSPACE) -----》退格键删除Selenium automation这些文字
from selenium.webdriver import ActionChains
from selenium.webdriver.common.keys import Keys
element = driver.find_element_by_xpath("//*[@id=‘lg‘]/img")
actionChains = ActionChains(driver)
actionChains.context_click(element).send_keys(Keys.ARROW_DOWN).send_keys(Keys.ENTER).perform()
注意:在火狐浏览器中,上面的这个方法是失效的,这是火狐的一个bug
driver.execute_script("window.alert(‘这是一个alert弹框。‘);") # 注意这里的分号是英文输入法的分号,不能用中文
driver.get_screenshot_as_file("C:\\Users\\你的账户名\\Desktop\\baidu.png") ---》截图并保存
print driver.current_window_handle # 输出当前窗口句柄
handles = driver.window_handles # 获取当前全部窗口句柄集合
print handles # 输出句柄集合
for handle in handles:# 切换窗口
if handle != driver.current_window_handle:
print ‘switch to second window‘,handle
driver.close() # 关闭第一个窗口
driver.switch_to.window(handle) #切换到第二个窗口
driver.switch_to.frame("iframe1") ---》iframe切换
find_element_by_link_text("地区") .execute_script("return arguments[0].scrollIntoView();",target_elem) ----->执行js脚本控制浏览器竖向滚动条 ,拖动到元素为“地区"的地方
maximize_window() --->设置浏览器全屏
p:driver.maximize_window()
driver.get_window_size()--->获取浏览器窗口的大小
driver.set_window_size(1280,800) -->设置窗口的分辨率是1280*800
.is_selected()-->判断单选或者多选控件是否被选中,返回值是布尔值
p:driver.find_element_by_xpath("//*[@id=‘news‘]").is_selected()
属性:
capabilities[‘version‘] -->浏览器version的值
p:driver.capabilities[‘version‘]
current_url--->获取当前页面的URL
p:driver.current_url
title-->获取当前页面的标题显示的字段
p:driver.title
driver.find_element_by_xpath("//*[@id=‘TANGRAM__PSP_8__error‘]").text ---》获取某一个元素的text属性值
driver.find_element_by_id(‘su‘).size --->获取id为su的元素的大小
# this is config file, only store browser type and server URL
[browserType]
#browserName = Firefox
browserName = Chrome
#browserName = IE
[testServer]
URL = https://www.baidu.com
#URL = http://www.google.com
def get_value(self):
root_dir = os.path.dirname(os.path.abspath(‘.‘)) # 获取项目根目录的相对路径
print root_dir
config = ConfigParser.ConfigParser()
file_path = os.path.dirname(os.path.abspath(‘.‘)) + ‘/config/config.ini‘
config.read(file_path)
browser = config.get("browserType", "browserName")
url = config.get("testServer", "URL")
return(browser,url) # 返回的是一个元组
def get_system_time(self):
print (time.time()) # time.time()获取的是从1970年到现在的间隔,单位是秒
print (time.localtime())
new_time = time.strftime(‘%Y-%m-%d %H:%M:%S‘, time.localtime()) # 格式化时间,按照 2017-04-15 13:46:32的格式打印出来
print (new_time)
def get_search_result(self):
driver = webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(8)
driver.get(‘https://www.baidu.com‘)
driver.find_element_by_id(‘kw‘).send_keys(‘selenium‘)
time.sleep(1)
search_result_string = driver.find_element_by_xpath("//*/div[@class=‘nums‘]").text
print (search_result_string)
new_string = search_result_string.split(‘约‘)[1] # 第一次切割得到 xxxx个,[1]代表切割右边部分
print (new_string)
last_result = new_string.split(‘个‘)[0] # 第二次切割,得到我们想要的数字 [0]代表切割参照参数的左边部分
print (last_result)