2017-04-21 56 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

辉煌,这种简单的解决为好。非常感激! –