一、selenium有哪些组件
- selenium IDE
- selenium Webdriver
- selenium Grid
二、常用的8种定位方式
- By.ID
- By.NAME
- By.CLASS_NAME
- By.TAG_NAME
- By.LINK_TEXT
- By.PARTIAL_LINK_TEXT
- By.CSS_SELECTOR
- By.XPATH
三、close与quit有什么不同
- close:关闭当前页面(如果是最后一个页面,也会退出浏览器),不终止驱动程序进程
- quit:退出浏览器(无论打开多少个页面),终止驱动程序进程
四、findElement与findElemets有什么不同?
- findElement:返回元素是找到的第一个
- findElemets返回找到的所有元素,放在列表中
五、selenium有几种等待
- 强制等待 —— sleep
- 隐式等待 —— dr.implicitly_wait(时长)
- 显式等待
六、css定位与xpath定位有什么不同,哪个定位更好?
- css 样式定位;xpath 路径定位
- web端css用的比较多一点;app端用xpth比较多
- 如果页面上只有一个样式就可以定位,选择定位css,性能方面快;xpath可以层级多,遍历时间长,性能方面不快
七、如何处理下拉菜单
八、如何处理上传和下载文件
- 上传文件:元素.sendkeys(“文件名称和路径”)
- 下载文件:元素.click()
九、selenium中如何处理窗口
- JS对话框
- 切换窗口
十、怎么验证勾选框
- is_enabled() 是可用的
- is_displayed() 能显示
- is_selected() 已选择
十一、如何获取页面标题
- driver.title
十二、如何确定动态加载元素
- 可以用其他定位方式,不用动的元素
十三、selenium中定位元素失败,有哪些原因?
十四、常见的selenium异常
十五、脚本出现异常如何调试
十六、selenium是否支持用例的执行引擎?
- 不支持用例执行
- unittest/pytest支持用例的执行引擎
十七、selenium原理
- 测试脚本,可以是python,java编写的脚本程序(也可以叫做client端)
- 浏览器驱动, 这个驱动是根据不同的浏览器开发的,不同的浏览器使用不同的webdriver驱动程序且需要对应相应的浏览器版本。
- 浏览器,目前selenium支持市面上大多数浏览器,如:火狐,谷歌,IE等