当你做类似的事情时
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));