2017-04-21 110 views
1

我試圖從PCA預測API中找到一個元素,該元素在此處的鏈接中找到。 http://www.pcapredict.com/en-gb/address-capture-software/在運行時生成HTML的findElement

我現在的代碼如下,但由於它沒有找到任何元素,它會引發超時異常。然而,xpath是正確的,因爲我在開發人員工具中檢查過它。

By PCA = By.id("inputPCAnywhere"); 
    driver.findElement(PCA).clear(); 
    driver.findElement(PCA).sendKeys(ValidPostcode); 
    wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//div[@class='pcaitem pcafirstitem']"))); 
    driver.findElement(By.xpath("//div[@class='pcaitem pcafirstitem']")).click(); 

元素在頁面上可見,開發人員工具只返回一個結果,即xpath,沒有ID可以找到它。

回答

1

它看起來像第一項是越來越「選擇」默認情況下,導致它的類值等於如下:

<div class="pcaitem pcafirstitem pcaselected"...>...</div> 

所有其他如下結果只有pcaitem類,但沒有有pcaitem pcafirstitem一流的價值。

換句話說,你的問題是嚴格的類匹配。我會改進定位器以在class屬性上進行部分匹配。例如,具有CSS選擇器

wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector(".pcaitem.pcafirstitem"))); 
+0

輝煌,這種簡單的解決爲好。非常感激! –