找不到selenium WebElement两次

时间:2017-06-08 22:15:09

标签: java selenium

使用selenium和InternetExplorer 11,我可以浏览此站点。

我有一个方法,在页面上找到一个输入框然后输入文本。它第一次工作,但当我转到另一个页面时,它说该元素不存在,页面只是随机刷新。

我只是使用简单的等待:

WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[contains(text(), 'Enter Name')]")));
WebElement nameField = driver.findElement(By.xpath("//*[contains(text(), 'Enter Name')]"));

它崩溃并说在等待期间找不到该元素。

我不确定这只是针对特定网站的,还是我做错了。

如果有人有任何想法,我会很感激:)

1 个答案:

答案 0 :(得分:0)

以下是您的问题的答案:

正如您所提到的when I go to another page,整个HTML DOM都会发生变化,现在如果您尝试使用先前找到的findElement() / id / {{1}找到或使用name } / css Selenium将无法做到这一点。

因此,当我们在新页面上时,我们必须使用当前的xpath / id / name / css来重新搜索该元素才能使用xpathclick()方法。

如果这回答你的问题,请告诉我。