Nie można zlokalizować elementu: błąd {„method”: „xpath”, „selector”: „// li [@ id =” tablist1-tab3 „]”} przy użyciu Selenium i Java

Nov 26 2020

Otrzymałem ten błąd kilka razy:

Unable to locate element: {"method":"xpath","selector":"//li[@id="tablist1-tab3"]"}

Kod, którego użyłem to:

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();

Czy ktoś może mi pomóc z tym błędem?

Odpowiedzi

2 DebanjanB Nov 26 2020 at 04:59

Musisz użyć WebDriverWait do elementToBeClickable()i możesz użyć jednej z następujących strategii lokalizacji :

  • 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();
    
1 Agnia Nov 26 2020 at 03:55

WebElement tab = driver.findElement(By.xpath('//li[@id="tablist1-tab3"]')); try this

LevanGoderdzishvili Nov 26 2020 at 05:07

Make sure the element is not inside an iFrame. If it is, then you need to first find the iFrame element and use Selenium's switchTo(). After that you will be able to locate elements inside the iframe.