【面试】selenium面试题(1)

一、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中如何处理窗口

十、怎么验证勾选框

  • is_enabled() 是可用的
  • is_displayed() 能显示
  • is_selected() 已选择

十一、如何获取页面标题

  • driver.title

十二、如何确定动态加载元素

  • 可以用其他定位方式,不用动的元素

十三、selenium中定位元素失败,有哪些原因?
image

十四、常见的selenium异常
image

十五、脚本出现异常如何调试
image

十六、selenium是否支持用例的执行引擎?

  • 不支持用例执行
  • unittest/pytest支持用例的执行引擎

十七、selenium原理

  • 测试脚本,可以是python,java编写的脚本程序(也可以叫做client端)
  • 浏览器驱动, 这个驱动是根据不同的浏览器开发的,不同的浏览器使用不同的webdriver驱动程序且需要对应相应的浏览器版本。
  • 浏览器,目前selenium支持市面上大多数浏览器,如:火狐,谷歌,IE等