首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用selenium单击选择选项

如何使用selenium单击选择选项
EN

Stack Overflow用户
提问于 2018-01-09 19:41:41
回答 2查看 2.1K关注 0票数 0

我不能点击选项元素-

网址:http://www.oferty.net

当我试图在下拉列表中选择一个选项时。不幸的是,我收到了这样的信息:

“无法单击选项元素。执行JavaScript单击函数返回意外错误”

下面的代码做错了什么?

代码语言:javascript
运行
复制
Select estateType = new Select(driver.findElement(By.id("ps_type")));
estateType.selectByVisibleText("domy");    

请帮帮忙。

EN

回答 2

Stack Overflow用户

发布于 2018-01-09 21:32:56

我快速检查您要选择的下拉列表的HTML代码,它不是HTML下拉列表。它是用CSS创建的自定义下拉列表,因此不能使用Selenium提供的默认函数来选择下拉值。

代码语言:javascript
运行
复制
<div class="jquery-selectbox-list jquery-custom-selectboxes-replaced-list" style="width: 113px; height: 9em; display: none;">
<span class="jquery-selectbox-item value-998 item-0">rynek pierwotny
</span>
...
</div>

可能的解决方案

  • 尝试SendKeys上的jquery-custom-selectboxes-replaced-list元素,看看它是否工作,如果没有
  • 单击jquery-custom-selectboxes-replaced-list,然后滚动到您感兴趣的元素,然后单击它。
票数 0
EN

Stack Overflow用户

发布于 2018-01-10 05:10:11

这是一个模拟下拉列表,不是本地的。只能使用本机下拉列表(由Select定义)。甚至还有嵌入本机下拉列表,但它是隐藏的,这就是为什么报表不能单击选项错误。当您从页面中对下拉列表进行操作时,嵌入本机下拉列表总是隐藏的,因此实际上您没有对嵌入本机下拉列表进行操作。

试试下面的代码:

代码语言:javascript
运行
复制
public void choosePsType(String psType) {
    // find the container node of the dropdown list
    WebElement psTypeSelect = driver.findElement(By.cssSelector("label[for='ps_type'] + div"));

    // click on the selector to expand options
    psTypeSelect.findElement(By.cssSelector("span.jquery-selectbox-currentItem")).click();

    // choose wanted option
    String xpath = String.format(".//span[contains(@class, 'jquery-selectbox-item')][.='%s']", psType);
    psTypeSelect.findElement(By.xpath(xpath)).click();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48175575

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档