selenium webdriver找不到元素

时间:2013-11-06 10:20:52

标签: html eclipse selenium-webdriver element

我使用selenium webdriver的最新版本。

Selenium无法找到元素(输入字段)。这是HTML代码:

<input id="findPath" class="pathCom" type="text" style="width: 100%; 
background-color: rgb(255, 255, 255);" name="$path$conFind" 
value="find" data-ctl="["TextInput"]">

我使用这样的硒代码:

driver.findElement(By.xpath(".//input[@id='findPath']")).sendKeys("find");

我也尝试通过id或css定位器查找。我在这段代码之前设置了等待:

WebDriverWait wait = new WebDriverWait(driver, 15);
    wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath(" driver.findElement(By.xpath(".//input[@id='findPath']")).sendKeys("find");")));

我试过使用Selenium IDE,它找到了这个元素。我不知道webdriver有问题。 有人遇到过这样的问题吗?

2 个答案:

答案 0 :(得分:0)

这不是在WebDriverWait声明中使用 sendkeys()的正确方法,

你可以试试这个,

WebDriverWait wait = new WebDriverWait(driver, 15);
wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//input[@id='findPath']"))).sendKeys("find");

如果您没有使用等待变量,则可以按以下方式避免使用

new WebDriverWait(driver, 15).until(ExpectedConditions.presenceOfElementLocated(By.xpath("//input[@id='findPath']"))).sendKeys("find");

如果上述声明有效,则使用 id 肯定会有效,并且还可以提高代码的效果

new WebDriverWait(driver, 15).until(ExpectedConditions.presenceOfElementLocated(By.id("findPath"))).sendKeys("find");

答案 1 :(得分:0)

您的代码无法正常工作的原因是因为一个非常简单的错误。您已在xpath中包含句点

您的代码 -

driver.findElement(By.xpath(".//input[@id='findPath']")).sendKeys("find");

正确的代码 -

driver.findElement(By.xpath("//input[@id='findPath']")).sendKeys("find");

让我知道它是否有效!