使用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')]"));
它崩溃并说在等待期间找不到该元素。
我不确定这只是针对特定网站的,还是我做错了。
如果有人有任何想法,我会很感激:)
答案 0 :(得分:0)
以下是您的问题的答案:
正如您所提到的when I go to another page
,整个HTML DOM都会发生变化,现在如果您尝试使用先前找到的findElement()
/ id
/ {{1}找到或使用name
} / css
Selenium将无法做到这一点。
因此,当我们在新页面上时,我们必须使用当前的xpath
/ id
/ name
/ css
来重新搜索该元素才能使用xpath
或click()
方法。
如果这回答你的问题,请告诉我。