1. driver.find_element_by_ 查找元素,八种方式
id, xpath, tag name, link text链接名, class name, partial link text部分的link text, name, css selector
在实际项目开发脚本阶段,很多元素是无法通过id ,css, text, name来直接定位这个网页元素,更多的还是根据XPath或者css表达式去定位
xpath
根据属性定位
By.xpath("//input[@type='job' and @name='selenium']")
By.xpath("//input[start-with(@id,'nice')
By.xpath("//input[ends-with(@id,'很漂亮')
By.xpath("//input[contains(@id,'那么美')]")
2. driver.page_source 获取网页内容
3. .clear() 清除文本内容
4. driver.refresh() 刷新页面
5. driver.back()/driver.forward() 页面后退/前进
6. driver.capabilities['version'] 查看浏览器版本
7. driver.current_url 当前url
8. driver.title 当前标题
9. .send_keys(Keys.CONTROL + 't') 通过send_keys发送CONTROL+t新建一个标签页 Keys.CONTROL + 'a' 全选文字 Keys.BACKSPACE 退格删除
10. .click() 模拟鼠标单击
11. driver.set_window_size(1280,800) 设置窗口大小
12. .text 获取元素文字
13. .is_displayed() 判断元素是否在页面上
14. .is_selected() 判断单选/多选控件是否被选中,返回的是布尔值
15. .size
example:
search_btn = driver.find_element_by_id('su')
print (search_btn.size)
output:
{'width': 100.0, 'height': 36.0}
16. 在Selenium中,有一个ActionChains模块支持,右键,鼠标悬停,拖拽,双击等动作
actionChains = ActionChains(driver)
actionChains.context_click(element).send_keys(Keys.ARROW_DOWN).send_keys(Keys.ENTER).perform()
17. 执行js
弹窗
driver.execute_script("window.alert('alert');")
拖动
country = driver.find_element_by_link_text("country")
driver.execute_script("return arguments[0].scrollIntoView();",country )
18. 窗口切换
print driver.current_window_handle # 输出当前窗口句柄
handles = driver.window_handles # 获取当前全部窗口句柄集合
driver.close() # 关闭第一个窗口
driver.switch_to.window(handle) #切换到第二个窗口
19. iframe切换
driver.switch_to_frame("formframe")
driver.switch_to_default_content() 切换回默认frame
20. 处理弹窗
alert = driver.switch_to_alert()
alert.send_key('admin' + Keys.TAB + 'passwd')
alert.accept() # 点击弹出里面的确定按钮
alert.send_key('admin' + Keys.TAB + 'passwd' + Keys.ENTER) # 也可以通过回车确定
driver.switch_to_alert().dismiss() # 点击弹出上面的X按钮
21. 获取全部图片信息
for image in driver.find_elements_by_tag_name("img"):
print (image.text)
print (image.size)
print (image.tag_name)
22. 获取页面元素的属性信息
for link in driver.find_elements_by_xpath("//*[@href]"):
print (link.get_attribute('href'))
23. 屏幕截图
driver.get_screenshot_as_file('C:\\Users\\Jiameng.Tang\\Desktop\\test.png')
driver.get_screenshot_as_base64()
driver.get_screenshot_as_png()
网友评论