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")));
添加回答
舉報