2012-04-18 43 views
0

腳本:IE無法與C#硒腳本工作,而Firefox行之有效

IWebDriver ie = new InternetExplorerDriver(); 
IWebDriver ff = new FirefoxDriver(); 
string baseURL = "http://xxxxxxxxxxxx"; 
ISelenium iesele = new WebDriverBackedSelenium(ie, baseURL); 
ISelenium ffsele = new WebDriverBackedSelenium(ff, baseURL); 

基本URL的網頁有2個框架和上部框架是一個警告頁面,我要選擇「同意」,然後點擊點擊「確定」關閉它。 IE的腳本不起作用,可以發現複選框和按鈕的對象,但「選擇」和「單擊」不起作用。但在Firefox下,它工作正常,上部框架已成功關閉。 腳本: IE

iesele.Start(); 
iesele.Open(baseURL); 
iesele.SelectFrame("UpperFrame"); 
iesele.FindElement(By.Name("agree")).Click(); 
iesele.FindElement(By.CssSelector("ok")).Click(); 

火狐

ffsele.Start(); 
ffsele.Open(baseURL); 
ffsele.SelectFrame("UpperFrame"); 
ffsele.FindElement(By.Name("agree")).Click(); 
ffsele.FindElement(By.CssSelector("ok")).Click(); 

有誰知道爲什麼IE瀏覽器不能正確執行這個腳本? 我應該設置一些IE8嗎?

謝謝

回答

0

嗯,我已經搜索了你的問題;也許你也有同樣的問題,因爲在這個計算器的問題:

Selenium 2.0b3 IE WebDriver, Click not firing

這似乎給定的框架需要有焦點(通過點擊())實際點擊(前)被註冊您的元素。

0

每個瀏覽器呈現頁面的方式以及Selenium驅動程序中的差異都存在差異(因此可能無法爲不同的瀏覽器使用完全相同的腳本)。

您可能會發現this answer到類似的問題有用。特別是,請嘗試選擇並單擊目標元素的父級(例如<div>)而不是元素本身。此外,請嘗試使用MouseDown(),然後使用MouseUp()而不是Click()

+0

謝謝shamp00。 – 2012-04-18 09:45:47

+0

我不知道這是否是頁面的問題,只有點擊/選擇/檢查方法的作品。使用鼠標/鍵相關的方法/功能將導致錯誤: – 2012-04-18 09:53:14

+0

錯誤:沒有可用於當前位置的源代碼。當我嘗試在複選框(HTML源代碼中的Javascript)上使用MouseDown時,發生此錯誤。只有在IE8上,Firefox纔會發生。 – 2012-04-18 09:54:38

0

我發現有幾次Firefox可以用來查找元素並與其進行交互,但是IE會在各個位置出現故障。大多數情況下,我會投入「等待元素」,並解決IE問題。我認爲IE創建元素有時會慢一些(或者按照不同的順序來做事情?),所以有時當你點擊它時,元素不存在。 這可能不是你的問題,但它似乎發生在我身上而非常頻繁!

編輯:我也使用Chrome瀏覽器,並且當IE失敗時,經常使用FF和Chrome。