无法在select with selenium中选择选项

weylhg0b  于 2021-06-30  发布在  Java
关注(0)|答案(2)|浏览(344)

我有一个问题,当我试图选择一个选项在 <select> 在 selenium 中。

Select select = new Select(element);
actions.moveToElement(element);
select.selectByValue("100000");

这只会让我 ElementClickIntercepted . 试着点击它也会让我 ElementClickIntercepted . 试着用js点击它给了我一个机会 NullPointerException . 我可以很容易地在firefox中使用元素选择器来选择它,所以没有任何东西可以阻止我点击它。
什么是拦截点击?通常,当一个元素叠加另一个元素时,它会在测试结果中告诉我,但在这里它没有。

<div class="pull-left">
<select name="nb" class="form-control">
<option value="10">10</option><option value="20">20</option><option value="50">50</option><option value="100000">All</option>
</select>
</div>

选择xpath:

//select[@name="nb"]

它是页面上唯一的选择。

iq3niunx

iq3niunx1#

因为元素是 <select> 元素,您需要使用select类。调用 click() 在值为1000的选项上,需要为 elementToBeClickable() 您可以使用以下任一定位器策略: cssSelector :

new Select(new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("select.form-control[name='nb']")))).selectByValue("100000");
``` `xpath` :

new Select(new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//select[@class='form-control' and @name='nb']")))).selectByValue("100000");

bis0qfac

bis0qfac2#

试试这个:

WebDriverWait wait = new WebDriverWait(driver, 40);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(".//select[@name='nb']")));
Select select = new Select(element);
actions.moveToElement(element);
select.selectByValue("100000");

相关问题