Selenium webdriver - 为什么相同的代码在不同的浏览器驱动程序中表现不同

时间:2016-03-02 07:10:09

标签: java selenium-webdriver

我正在使用Selenium webdriver和Java开发自动化测试框架。我差不多完成了,当我使用Firefox驱动程序运行我的测试时,它总能正常工作。但是当我在Chrome驱动程序中运行相同的代码时

  

org.openqa.selenium.InvalidElementStateException:无效的元素   state:元素当前不可交互,也可能不是   操纵

几乎每个'findElement()'语句都会出现

异常。在Internet Explorer中运行相同的代码时

  

org.openqa.selenium.NoSuchElementException   发生。

我想知道为什么相同的代码在不同的浏览器驱动程序中表现不同。请注意在开发在不同浏览器驱动程序中运行完美的自动化框架时要记住的事项

2 个答案:

答案 0 :(得分:0)

“triggerMouseEventAt”????

不同的浏览器呈现的屏幕略有不同。鼠标事件可能是最不可能在浏览器中工作的事情。

driver.findElement(By ....)。click() 更有可能跨浏览器工作。

答案 1 :(得分:0)

我们可以使用以下命令在不同的浏览器中找到元素:

  1. Javascript:Javascript引擎在不同的浏览器中有所不同
  2. ClassName
  3. 编号
  4. XPath:XPath在不同浏览器中的工作方式也不同
  5. CSS选择器:此方法也应该以不同的方式工作
  6. 最佳方法应该是测试合适的方法和使用方法。

    我读过一本关于“浏览器如何工作”的好书。您也可以尝试:http://taligarsiel.com/Projects/howbrowserswork1.htm