2 回答

TA贡献1826条经验 获得超6个赞
你可以试试这个。我看到你忘了Click(); 也是。取消定位元素有几个原因。其中一个原因是 xpath 无效或在该页面上找不到。一种检查方法是使用 find.element 然后使用你的 xpath,如果它没有找到它会抛出异常。这是一个例子。
WebDriver driver = new FirefoxDriver();
driver.get("https://www.google.com/");
/*wait page for 2 seconds -- simple way wait, but don't recommended for using real testing*/
Thread.sleep(2000);
driver.findElement(By.name("q")).Click;
driver.sendKeys("prime video");
driver.sendKeys(Keys.ENTER);
然后尝试通过使用验证 xpath 是有效还是无效
try
{
driver.findElement(By.xpath("//*[@id='hdtb-msb-vis']//div[text()='News']")).Click;
}
catch(NoSuchElementException ex)
{
System.out.println("There is no element in this page or xpath is invalid : "+ex.Message);
}
catch(Exception ex)
{
System.out.println("Exception : "+ex.Message);
}
如果 xpath 无效或未找到,您可以尝试使用 Katalon Recorder或Chropath扩展 chrome 来帮助查找 xpath。
加泰罗尼亚纪录
https://chrome.google.com/webstore/detail/katalon-recorder/ljdobmomdgdljniojadhoplhkpialdid
色光
https://chrome.google.com/webstore/detail/chropath/ljngjbnaijcbncmcnjfhigebomdlkcjo?hl=en

TA贡献1790条经验 获得超9个赞
它适用于我的 xpath 略有不同:
WebElement news = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@id=\"hdtb-msb-vis\"]/div[2]/a")));
添加回答
举报