2016-03-02 51 views
2

我開發利用硒的webdriver和Java的自動化測試框架。我差不多完成了,當我使用Firefox驅動程序運行我的測試時,它始終正常工作。但是,當我運行在Chrome中的驅動程序相同的代碼硒的webdriver - 爲什麼相同的代碼有不同的表現瀏覽器的驅動程序

org.openqa.selenium.InvalidElementStateException:無效的元素 狀態:元素目前相互作用,可能不 操縱

例外,幾乎發生每個'findElement()'語句。當在Internet Explorer中運行相同的代碼時

org.openqa.selenium.NoSuchElementException 發生。

我想知道爲什麼相同的代碼在不同的瀏覽器驅動程序中表現不同。請註明哪些事情記在心裏的發展,在不同的瀏覽器驅動程序

+0

所有瀏覽器都不同。但是,絕大多數「差異」是在Web元素準備好使用之前嘗試與Web元素進行交互所導致的用戶錯誤。你的框架是否包含這些檢查? –

+0

是的。我在執行任何操作之前使用不同的Selenium等待檢查元素的存在/可用性 – stackoverflow

+0

您是否有一些示例代碼在兩個瀏覽器中的作用不同? –

回答

0

「triggerMouseEventAt」完美運行的自動化框架????

不同的瀏覽器呈現的屏幕略有不同。鼠標事件可能是期望跨瀏覽器工作的最不可能的事情。

driver.findElement(由......)。點擊() 更可能跨瀏覽器兼容。

+0

我可以'使用'driver.findElement(By ....)。click()'命令點擊菜單,它總是拋出'NoSuchElementFound'異常,即使使用了不同的條件等待。經過長時間的研究,我發現只有「triggerMouseEventAt」在登錄菜單上完美工作 – stackoverflow

+0

您可以發佈HTML嗎? – MikeJRamsey56

0

我們可以通過找到不同的瀏覽器元素:

1. Javascript: Javascript engine is deffirent in different browser 
2. ClassName 
3. Id 
4. XPath: XPath also works differently in different browser 
5. CSS Selector: This method should also work differently 

最好的方法應該是測試合適的方法和使用其作品。

有一次,我在「瀏覽器是如何工作的」讀一本好書。您也可以嘗試:http://taligarsiel.com/Projects/howbrowserswork1.htm

相關問題