java自动化高频面试题

Selenium常见面试题

1. Selenium工作原理?

  • Selenium客户端(Java代码)首先启动驱动程序,调用驱动打开浏览器
  • get访问网址/点击/输入…这些操作会通过指令发送给驱动,由驱动再次传给浏览器解释执行,通讯采用的是WebDriver协议
  • 浏览器将执行结果通知到客户端

2. Selenium有哪一些组件?

  • Selenium IDE 浏览器一款插件,可以支持录制/回放脚本,不太适合做自动化
  • Selenium WebDriver 可以支持各种类型的语言(Java/Python…)编写自动化脚本
  • Selenium Grid 分布式测试,可以将自动化测试脚本分发到各台主机上面执行

3. WebDriver协议是什么?

  • Selenium客户端与驱动程序通讯的协议,基于http协议做了二次封装,兼容各种语言实现Selenium客户端

4.Selenium中的三大等待分别是?

  • 强制等待
  • 显式等待
  • 隐式等待

5.web ui自动化中显式等待、隐式等待有什么区别?

  1. 相同点:
  • 都是在设置的超时时间范围内一直不断的去找元素
  1. 不同点:
  • 作用范围不同 隐式等待:全局的 显式等待:针对特定的元素
  • 等待条件不同 隐式等待:只会等待元素在源代码中存在 显式等待:有更多的丰富的条件,等待元素可见、可被点击…
  • 超时异常不同 隐式等待:NoSuchElementException 显式等待:TimeoutException

元素定位常见面试题

1. 请尽可能多的列出自动化的元素定位方式,以及你最常用的定位方式?

  • 8种元素定位:id、name、classname、tag、linktext、partiallinktext、css选择器、xpath
  • 常用的定位方式:xpath、css选择器

2. 如果一个元素无法定位,你一般会考虑哪些方面的原因?

  • 检查你的元素定位表达式是否写错
  • 确保元素加载出来(等待:三大等待)
  • 元素是否在iframe中,需要切换iframe
  • 元素如果是在新的窗口中,需要切换窗口
    …(其他原因待补充)

3. 动态属性元素如何定位?

  • 根据元素属性规律来判断,是否有一些固定的字符串(固定前缀or固定后缀),xpath的contains模糊匹配
  • 通过其他的属性/文本选择定位

你可能感兴趣的:(java自动化学习,java)