使用 Java 在 Selenium 中找到元素的超时



当你做类似的事情时

WebElement tab = driver.findElement(By.xpath("//table")) 

您可以发出类似命令

driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

以更改超时。 但是现在,如果您想执行以下操作,该怎么办:

public String getCellText(WebElement tab) {
{
WebElement td = tab.findElement(By.xpath(".//td"));
return td.getText();
}

你不能做一个

tab.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

有没有办法更改超时? 当您有一个作为表的元素并且想要查找下面的行(如果可能的话)没有行时,这非常有趣。 如果您执行了 tab.findElements(By.xpath("tr")),并且没有行,则可能需要长达一分钟才能返回。

有没有办法为上述元素设置超时?

driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);  

这是一个隐含的等待。
隐式等待是为WebDriver 对象实例的生存期设置的

由于tab是web元素,所以不能做:

tab.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

您可以选择显式等待以更改特定条件的超时。

代码将是这样的:

new WebDriverWait(driver, 10).until(ExpectedConditions.visibilityOfElementLocated(locator));  

它返回一个 Web 元素。 你也可以这样:

WebElement element =   new WebDriverWait(driver, 10).until(ExpectedConditions.visibilityOfElementLocated(locator));

相关内容

  • 没有找到相关文章

最新更新