Selenium 等待两个元素之一可见

问题描述 投票:0回答:3

我如何才能等到两个元素之一可见?我目前正在使用 ExpectedConditions - 使用示例是,

WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(30));

IWebElement waitresponse = wait.Until(ExpectedConditions.ElementIsVisible(By.XPath("example')]")));

但这只与一个元素相关,我如何添加 OR?

尝试的例子,

IWebElement waitresponse = wait.Until(ExpectedConditions.ElementIsVisible(By.XPath("example')]") || (By.XPath("Example2")));

但是没有运气使用

||

也许我的语法错误?

c# selenium
3个回答
2
投票

更新以下行

IWebElement waitresponse = wait.Until(ExpectedConditions.ElementIsVisible(By.XPath("xpath1|xpath2")));

0
投票

这是另一种解决方案:

var wait = new WebDriverWait(driver, TimeSpan.FromMilliseconds(RetryTimeoutMilliseconds));
wait.Until(drv => elementListToBeVisible.Any(v => drv.FindOrNull(v)?.Displayed == true));

-1
投票
driver= webdriver.Firefox()

def wait():
enter code here
if len(driver.find_elements_by_tag_name('whatever')) == 1:

   do whatever you have to do
else:
time.sleep(5)
wait()
© www.soinside.com 2019 - 2024. All rights reserved.