我试图用Selenium写一个测试,但由于某种原因,我的wdwait代码行在下面的方法是失败的,并在标题错误消息。当我注解wdwait行时,测试正常通过。我错过了什么?
值得一提的是......在相同的测试中,我对Quantity Dropbox使用了几乎相同的方法,这里的wdwait工作得很好。这两个收存箱都是相同的“选择”类型。
searchBoxDropdown是amazon.com主页上搜索栏旁边的下拉列表
@FindBy(id="searchDropdownBox")
WebElement searchBoxDropdown;
x
public void selectDropdownElement(String elementx) {
wdwait.until(ExpectedConditions.elementToBeClickable(searchBoxDropdown));
Select elementDropdown = new Select(searchBoxDropdown);
elementDropdown.selectByVisibleText(elementx);
}
@Test
public void amazonTest() {
amazonAddToCart.selectDropdownElement("Books");
amazonAddToCart.inputSearchBox("Six of Crows Boxed Set");
amazonAddToCart.clickBookLink();
amazonAddToCart.selectHardcover();
amazonAddToCart.selectQuantity(20);
amazonAddToCart.clickGiftCheckbox();
amazonAddToCart.clickAddToCart();
}
<select aria-describedby="searchDropdownDescription" class="nav-search-dropdown searchSelect nav-progressive-attrubute nav-progressive-search-dropdown" data-nav-digest="k+fyIAyB82R9jVEmroQ0OWwSW3A=" data-nav-selected="0" id="searchDropdownBox" name="url" style="display: block; top: 2.5px;" tabindex="0" title="Search in">
的数据
我尝试将方法“elementToBeClickable”更改为“visibilityOfElements”,但结果相同。有没有类似的方法,允许选择WebElement,我可以使用也许?
此解决方案的工作方式与我想象的一样:
public void selectDropdownElement(String elementx) {
wdwait.until(ExpectedConditions.textToBePresentInElement(searchBoxDropdown, "All"));
Select elementDropdown = new Select(searchBoxDropdown);
elementDropdown.selectByVisibleText(elementx);
}
型
1条答案
按热度按时间wmvff8tz1#
我不确定在这种情况下是否应该检查选择或可见性。当搜索栏被置于前面时,DOM中的元素被置于后面,因此方法可能会返回假阴性结果。
但你的观点是选择价值,对吗?此代码适用于我(我选择汽车价值)
字符串
或者在你的实现中
型