0

我使用 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 有什么问题。有没有人遇到过这样的问题?

4

2 回答 2

0

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

你可以试试这个

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");
于 2013-11-06T14:08:52.963 回答
0

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

你的代码-

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

正确的代码-

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

让我知道它是否有效!

于 2016-02-18T02:32:57.147 回答