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

无法使用selenium webdriver单击java script下拉元素

轩辕炎彬
2023-03-14

在我们的应用程序中,当我将鼠标放在菜单项上时,下拉菜单项就会出现,我希望通过单击该菜单项来选择该菜单项。菜单的结构如下所示,

 Main Menu
    Admin Sub menu: 
      Manage Channels
      Manage Users 

在selenium webdriver中,我尝试通过给出xpath、linktext、部分链接文本直接单击Manage Channels。但在选项中,它表示无法定位元素。我附上一张截图以供参考

 driver.findElement(By.linkText("Manage Channels")).click(); 
 driver.findElement(By.xpath("//li/a[contains(., \"Manage Channels\")]")).click(); 
 driver.findElement(By.partialLinkText("Manage Channels"));

共有1个答案

糜单弓
2023-03-14

基本上,你将不得不首先移动鼠标到‘菜单项’下拉,然后移动鼠标到选项,你想要选择,然后点击选项。

对于Ruby,下面是一行代码:

driver.action.movet_to(el1).movet_to(el2).click.perform

我对Java不了解,但您可以应用上述逻辑。我尝试了以下Java代码,看看它是否工作,或者在需要的地方修改它:

WebElement element1 = driver.findElement(By.linkText("Manage Channels")); 
WebElement element2 = driver.findElement(By.xpath("//li/a[contains(., \"Manage Channels\")]"))

Actions action = new Actions(driver);    
action.moveToElement(element1).moveToElement(element2).click().build().perform();
 类似资料:
  • 在我们的应用程序中,当我将鼠标放在菜单项上时,将出现下拉菜单项。在这里我想通过点击它来选择一个项目。主菜单:管理子菜单:管理频道,管理用户在selenium webdriver中,我尝试通过给出xpath,linktext,partial link文本直接点击管理频道。

  • 我试图创建一个自动的网络会话,我登录到一个网站,并从下拉框中选择一个选项。我能够使用硒进入页面,但我无法点击打开下拉菜单的栏,然后选择我想要的选项。这是页面的截图,它的超文本标记语言代码:[![在此输入图像描述][1]][1][![在此输入图像描述][2]][2] 我想单击下拉列表中的“降级性能”选项。我有点被困在这里,因为下拉列表的HTML与[this one][3]根本不相似(无法“选择”)。

  • 我使用javascript函数启动引导下拉菜单,如他们的文档中所述。 通常,每当您在下拉列表外部单击或选择其中一个选项时,下拉列表都会隐藏。 通过javascript启动时不会发生这种情况。 在此复制中,您将看到两个菜单: 使用"组件"触发器按预期工作的人 另一个,使用右键单击,它不像预期的那样工作。(它不会在单击外部或甚至在元素单击时关闭) 当我在下拉菜单外单击时,我可以通过以下方式“手动”摆脱

  • 问题内容: 我想知道如何启用对伪元素的单击(我链接到下面的JSfiddle上div的橙色部分)。我读过,由于伪元素不在DOM中,因此您需要对此进行破解。不幸的是,我找不到实际显示有效代码的现有Stackoverflow问答。 HTML: CSS: 问题答案: 一种解决方法是将a动态添加到该项目并为其分配click方法。 CSS

  • 我试图点击一个按钮,它出现在图的右侧(图上方的三行),最后想点击“下载为CSV”。我的代码如下。 File=WebDriverWait(驱动程序,20).until(ec.element_to_be_clickable((by.xpath,'//*[@id=“HighCharts-3SLSA4F-0”]/div[2]/ul/li[6]')).click()#下载为csv 错误:引发TimeoutE

  • 我有在下拉列表中选择每个选项的测试用例,但无论我目前做什么,我都会遇到这个错误。 结果消息:系统。InvalidOperationException:元素在点(1170.0333251953125405.4250030517578)处不可单击,因为另一个元素遮挡了它 目前正试图用这个代码改变年份 - WebElement是这样定义的 这是selenium尝试选择拾取时下拉列表的样子。我看不到任何东