0

推出IE8的應用我使用
硒獨立服務器之後做任何動作 - 2.25.0
IE - 8.0.6001.18702(32位)
IEDriverServer - 2.25.1.0
爪哇 - SDK6
OS - Win XP的32位無法使用webdriver的

代碼:

System.setProperty("webdriver.ie.driver", "Path to IEDriverServer.exe"); 
    driver.get("http://www.naukri.com/"); 
    // Used Wait before entering text. 
    driver.findElement(By.id("qp")).clear(); 
    driver.findElement(By.id("qp")).sendKeys("java j2ee"); 
    driver.findElement(By.id("ql")).clear(); 
    driver.findElement(By.id("ql")).sendKeys("chennai"); 
    driver.findElement(By.linkText("Create a new Job Alert")).click(); 

我上面的代碼用來啓動IE8。我能夠在IE中成功啓動並打開應用程序。但是,在此之後,我無法對打開的網頁執行任何操作。

  1. 我做了IE保護模式設置爲高級別的所有四個。
  2. 設置IEDriverServer.exe
  3. 路徑設置瀏覽器縮放級別設置爲100%

我做了所有上述,我看了很多論壇,但我沒有得到答案。

我使用了相同的代碼並在另一臺機器上運行。它在那裏工作得很好。第二機器配置是

硒獨立的服務器 - 2.25.0
IE - 8.0.7601.17514(64位)
IEDriverServer - 2.25.1.0
爪哇 - SDK7
OS - Win 7的專業

我不知道確切的問題是什麼?我試圖找到根本原因,但我不是。
請幫我解決這個問題。
在此先感謝...

+0

你有什麼異常?確保在driver.get(「http://www.naukri.com/」);網頁加載完成。在該步驟之後,使用IE開發工具來驗證任何進程。 – StaleElementException

+0

我得到了異常,因爲'org.openqa.selenium.nosuchelementexception無法找到id == qp'的元素(WebDriver沒有提供任何堆棧跟蹤信息) – Manigandan

回答

0

根據您收到的錯誤消息,您在頁面加載完成之前輸入字段中的值。你使用的等待期足夠加載頁面。使用此

driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); 

增加等待期。如果您正在使用Thread.sleep(10000),則爲 ;在您的代碼中,然後將其增加到Thread.sleep(20000); 它會工作。

+0

我嘗試了40秒。沒有聽起來不錯,但我得到錯誤。 – Manigandan

+0

在顯示錯誤之前頁面是否完全加載。你試過用這個代碼「driver.manage()。timeouts()。implicitlyWait(60,TimeUnit.SECONDS)」; –

+0

是的。我在兩臺機器上試過上面的代碼。它在一個而不是另一箇中工作。我不知道確切的問題是什麼,爲什麼它在一個盒子裏而不是另一個盒子裏。 – Manigandan

1

相當多的事情要考慮:

更新硒,它是在v2.28

切換到使用火狐司機,看它是否位於與IEDriver或其他什麼東西的問題。

您也誤解了IE的'保護模式'的含義。你正在破壞安全區,這是不同的。

請參閱本圖片:

http://www.ivertech.com/images/internetExplorer7/IE7UncheckEnableProtectedModeCheckBox.gif

每個區域都會有它自己的保護模式設置。取消選中所有區域。

如果您沒有該複選框,那麼有兩件事:它可能已被IT管理員禁用,如果您有IT管理員,並且因此我們無能爲力 - 您必須與IT團隊通話, 截圖顯示你做什麼有。

除了使用隱式超時的,實際上它包裝在一個WebDriverWait條件:

http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/support/ui/WebDriverWait.html

如果一個合理的超時(1分鐘)之後出現故障,那麼我們就知道別的東西是錯誤的。不要使用隱式等待函數。

也看到,如果你可以使用這個CSS選擇器獲取的元素以不同的方式,比如:

input.w327 
+0

感謝您的建議。我很確定我只在IE上面對問題。正如你所建議的我瞪着眼睛,發現沒有選擇使用Win Xp查看IE8上的「啓用保護模式」複選框。這些複選框僅適用於Win 7及以上版本。我嘗試了隱式和顯式等待。沒什麼好聽的。 – Manigandan

+0

您在原始文章中說過您正在運行Win 7 Professional。 – Arran

+0

我說我得到了結果,當我使用贏7,而我沒有得到結果,而我用win XP。請再讀一遍。 – Manigandan