java如何使用SeleniumWebDriver选择网页上的两个元素之一?
我正在一个网页上运行一个测试,这个网页可能有也可能没有特定的元素。 程序如下:我填写表格,然后单击“搜索”按钮。当浏览器打开一个新的url时,我需要选择元素_1,但如果它不存在,我必须选择元素_2
WebElement element = driver.findElement(By.xpath("//....")) || driver.findElement(By.xpath("//..."));
element.click();
//这样不行,还有别的办法吗?可以不抓不抓吗
# 1 楼答案
使用驱动程序。findElement()执行隐式等待。因此,即使出现secondElement,测试也会等待一段时间。相反,在WebDriverWait中使用findElements()可能是更好的解决方案
# 2 楼答案
实际上没有明确的方法。你可以使用
WATIR
。如果你对Ruby
没意见,它确实会提供这样的代码。否则,你就试着抓住# 3 楼答案
我认为更好的方法是使用CSS3选择器,它可以group selectors by using a comma:
为python道歉:
假设网页会显示
<div class="not-found">
,以防什么也找不到。或者用<tr class="entry">
显示结果# 4 楼答案
您可以尝试这样的方法,是的,它使用的是try-and-catch块,但这是我们将遵循的过程,因为除了isDisplayed()、isEnabled()和isSelected()之外,没有特殊的方法isPresent(),使用try-and-catch块处理异常有什么错
或者使用下面的方法避免“尝试并抓住”块
# 5 楼答案
这可能对你有帮助