2011-11-16 59 views
1

我在編寫Selenium 2代碼,該代碼通過一些標準搜索Google,然後點擊結果中的鏈接加載此鏈接。這些步驟在循環中重複。Selenium 2無法點擊谷歌搜索結果頁面中的鏈接

有時候一切正常,但有時當Selenium驅動程序點擊鏈接時,Firefox只會重定向到結果。請求的網址從未打開過。每次在Firefox HtmlUnitDriver中隨機出現此錯誤。

下面是代碼:

FirefoxDriver driver = new FirefoxDriver(); 
driver.get("http://google.com"); 

//set the search engine criteria 
engineSearchInput = driver.findElement(By.xpath("//input[@type='text']")); 
engineSearchInput.sendKeys(this.searchCriteria); 

//submit to engine 
engineSearchInput.submit(); 
WebElement link = (new WebDriverWait(driver, 10)).until(new ExpectedCondition<WebElement>() { 
    @Override 
    public WebElement apply(WebDriver d) { 
     return d.findElement(By.xpath("//a[@href='" + searchUrl + "']")); 
    } 
}); 
link.click(); 
+0

「searchUrl」聲明在哪裏?請告訴我們代碼。 – jamesfzhang

+0

searchUrl是我想要從結果頁打開的url。例如,如果我輸入搜索標準將把我的searchUrl放入第一個結果中,那麼代碼將搜索此URL並單擊包含該URL的此鏈接。 –

回答

0

我發現瞭如何解決問題。 提交到谷歌後,我加了Thread.sleep(1500),現在一切正常。

+0

你不應該使用'Thread.Sleep'; Selenium有一個'WebDriverWait'對象,您可以使用它來等待條件滿足(例如網頁標題指示您期望的頁面已加載)。 –

相關問題