我已经多次收到此错误:
Unable to locate element: {"method":"xpath","selector":"//li[@id="tablist1-tab3"]"}
我使用的代码是:
options.addArguments("--headless");
options.addArguments("window-size=1200x900");
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
WebElement tab = driver.findElement(By.xpath("//li[@id="tablist1-tab3"]"));
tab.click();
有人能帮我纠正这个错误吗?
您需要使用WebDriverWait来等待elementToBeClickable()
,并且您可以使用以下定位器策略之一:
-
cssSelector
:new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("li#tablist1-tab3"))).click();
-
xpath
:new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//li[@id="tablist1-tab3"]"))).click();
WebElement tab=driver.findElement(By.xpath('//li[@id="tablist1-tab3"]'(;试试这个
确保元素不在iFrame内。如果是,那么您需要首先找到iFrame元素并使用Selenium的switchTo((。之后,您将能够定位iframe中的元素。