当前位置: 首页 > 知识库问答 >
问题:

在javascript菜单中使用Selenium复选框

澹台衡
2023-03-14

使用Selenium和Java实现测试自动化。

有一个页面必须运行IE(而不是Chrome)。我相信它也使用了ColdFusion。无论如何,单击箭头会弹出复选框菜单。但是,这个菜单不是普通的html,而是Java脚本(见下文)。这只是javascript函数的一部分。

我需要选择一个选项。基本上没有直接的。我打印页面源代码,并尝试执行一个(driver.findelements(by.xpath(“//input”))返回0个元素。

使用大量字符串操作,我可以找到选项的索引(通过查找省略号;“),并执行一些替换操作。我可以打开菜单,但现在怎么办?有人建议做一件事,根据选项在列表中的位置执行一个操作。sendkeys(keys.arrowdown),但箭头向下,而不是向下列表中的项,移动滚动条。

还有其他人遇到过类似的事情或者有建议吗?(也许是使用javascript Executor的东西?)

<SCRIPT defer>

var strInnerHTML = '<div>';
strInnerHTML += '<form action="" onsubmit="return false;">';
strInnerHTML += '<span class="checkboxdropdown">';
strInnerHTML += '<input  type=\"checkbox\" id=\"_78\" name=\"cbusers\" 
value=\"78\"><label for=\"_78\" HIDEFOCUS=\"true\" style=\"white- 
space:nowrap; text-overflow:ellipsis;\">Option 1</label><br> 
<input  type=\"checkbox\" id=\"_90\" name=\"cbusers\" value=\"90\"><label 
for=\"_90\" HIDEFOCUS=\"true\" style=\"white-space:nowrap; text- 
overflow:ellipsis;\">Option 2</label><br><input  
type=\"checkbox\" id=\"_139\" name=\"cbusers\" value=\"139\"><label 
for=\"_139\" HIDEFOCUS=\"true\" style=\"white-space:nowrap; text- 
overflow:ellipsis;\">Option 3</label><br>

共有1个答案

居焱
2023-03-14

在JavaScript中,selenium库中有一个称为“直到”的部分,因此Java中可能也有类似的内容。

在JS:

(async ()=>{
    let element = driver.findElement({id: "example"});

    return await driver.wait(await until.elementIsVisible(element)).then(async ()=>{
        return await element.click();
    });    
})();

如果您等到元素显示在页面上再开始与它们交互,您可能会有更多的运气。

 类似资料:
  • 问题内容: 我的代码使用selenium从下拉菜单中选择选项。我有一个看起来像这样的代码: 这样很好。但是下拉菜单中有很多选项,我希望遍历下拉菜单中的所有项目。我准备了以下代码来遍历选项: 这是行不通的。关于如何使这样的循环工作的任何建议?我不了解python中的循环吗? 谢谢。 问题答案: 这应该为您工作。该代码将 查找元素 迭代以从下拉列表中获取所有选项 遍历列表 对于列表中的每个项目,选择当

  • 我想从下面的列表中选择一个使用selenium的选项: 这里 但问题是没有列表可供选择。 在此输入图像说明 我到目前为止的代码: 需要帮助!!

  • 你好,我正在使用selenium,并且已经成功地设置了id历史的文本字段,但是无法从

  • 我正在使用带有C#的Visual Studio Selenium来选择当前我使用的菜单选项Chrome但我将使用多个浏览器。这是我正在使用的代码: 我已经加入了线程来降低测试速度,并不断出现以下错误。信息: OpenQA.Selenium.ElementNotInteractableException:元素不可交互:元素当前不可见,可能无法操作 堆栈跟踪:

  • 我有popupMenu和CheckBox。我需要将状态CheckBox写入布尔。此代码不工作: 这是错误: 致命的例外:主java。com上的lang.NullPointerException。亚历克斯。救命啊。根系活力。android上的OnOptions ItemSelected(RootsActivity.java:182)。应用程序。活动com上的onMenuItemSelected(Ac

  • 问题内容: 我正在尝试从3个按钮的列表中进行选择,但是找不到选择它们的方法。以下是我正在使用的HTML。 我可以使用以下代码找到它: 输出:SRF,COM,MOT 但我想选择ChoiceOne。(单击它)我该怎么做? 问题答案: 使用CSS选择器或XPath 直接按属性选择,然后单击它。 更正(但是OP应该学习如何在文档中查找) 在Python绑定中,它不存在,称为。一个人应该能够查看异常消息并在