css定位表达式:https://www.w3schools.com/cssref/css_selectors.asp
XPath定位: https://www.w3schools.com/xml/xpath_syntax.asp
PO参考文档:

淘宝镜像下载webdriver地址:https://npm.taobao.org/mirrors/chromedriver

Appium和Selenium对比
  • Appium == Selenium Server
  • ChromeDriver == ChromeDriver
  • Appium Client <= Selenium Client
  • Appium Desktop == Selenium IDE
  • Selenium Grid 支持所有的webdriver的框架 appium selenium

传统和远程调用webdriver区别
  1. '''
  2. 传统模式下:
  3. 调用过程 python testcase -> chromedriver -> chrome
  4. '''
  5. # 用法
  6. webdriver.Chrome()
  7. '''
  8. Remote模式下:
  9. 调用过程 python testcase -> 远程selenium server -> chromedriver/iedriver -> chrome/ie
  10. '''
  11. # 需要先在终端运行服务器jar包
  12. java -jar selenium-server-standalone-3.141.59.jar -help # 查看帮助文档
  13. java -jar selenium-server-standalone-3.141.59.jar -debug # 以deug方式运行
  14. # 用法
  15. self.driver = webdriver.Remote(command_executor='http://127.0.0.1:4444/wd/hub', desired_capabilities=DesiredCapabilities.CHROME)
  16. '''
  17. Grid模式下
  18. 调用过程
  19. python testcase -> grid hub/类似STF -> grid node == selenium server -> chromedriver/iedriver -> chrome/ie
  20. '''

常用定位方法:

  1. # xpath定位
  2. self.driver.find_element_by_xpath('//*[contains(text(),"xxxx")]')
  3. self.driver.find_element_by_xpath('//*[text()[contains(.,"目录")]]')
  4. # css定位
  5. self.driver.find_element_by_css_selector('.toc-container .btn')
  6. self.driver.find_element_by_css_selector('.btn.btn-default[data-toggle=dropdown]')

定位元素如下图:
selenium相关内容 - 图1

前端控制台查找元素技巧:

  1. # xpath定位
  2. $x('//*[@data-toggle="dropdown" and @class="btn btn-default"]')
  3. $x('//*[text()[contains(., "目录")]]')
  4. # css定位
  5. $('.toc-container .btn.btn-default') # 两个类中间有空格,为父子级关系
  6. $('.btn.btn-default[data-toggle=dropdown]')# 两个类挨着为同级(一个元素有两个或多个类名)
  7. # js定位
  8. document.getElementById
  9. document.getElementsByXXX