Selenium xpath元素不可见

时间:2017-03-09 16:36:52

标签: html selenium xpath selenium-webdriver automated-tests

我是硒的新手。我正在尝试执行我的Selenium webdriver测试但是我收到以下错误。

  

org.openqa.selenium.ElementNotVisibleException:元素不可见

formatted.isText()

我正在尝试使用xpath单击“My Proposed Events”选项卡,我从以下代码中获取:

    

driver.findElement(By.xpath("html/body/div[1]/div[2]/ul/li[2]/a")).click();

感谢您的帮助:)

2 个答案:

答案 0 :(得分:0)

使用以下xpath来定位元素

//li/a[text()='My Proposed Events']

//li[@role='presentation']/a[@role='tab']

添加Explicit Wait,直到您的元素可见,然后点击

WebDriverWait wait = new WebDriverWait(driver, 120);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(".//li[@role='presentation']/a[@role='tab']")));
driver.findElement(By.By.xpath(".//li[@role='presentation']/a[@role='tab']"))).click();

答案 1 :(得分:-1)

您尝试使用的Xpath不正确。在div [1]之后没有div [2]元素。

尝试使用以下xpaths:

driver.findElement(By.xpath("html/body/div[1]/div[1]/div[1]/ul/li[2]/a")).click();

driver.findElement(By.xpath("//a[contains(text(),'My Proposed Events')]")).click();

或尝试使用LinkText:

driver.findElement(By.linkText("My Proposed Events")).click();

在尝试单击元素

之前使用显式等待
WebDriverWait wait = new WebDriverWait(driver, 30);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("put your xpath here")));