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

Selenium WebDriver子菜单单击不工作

弘承运
2023-03-14

我不能点击子菜单项使用selenium网络驱动程序使用c#。我正在使用IE9和FireFox 13。我尝试过Action Builder,但它不起作用。它给出了一个错误,说元素不能被单击。

    WebDriverWait Wait = new WebDriverWait(webDriver, TimeSpan.FromSeconds(5));
    IWebElement menu = Wait.Until((d) => webDriver.FindElement(By.Id("id1")));
    IWebElement menuOption = Wait.Until((d)=>webDriver.FindElement(By.Id("ID2")));
            Actions builder = new Actions(webDriver);
            builder.MoveToElement(menu).Build().Perform();
            Thread.Sleep(5);
            //then click when menu option is visible
            menuOption.Click();

我甚至使用了javascript:js。ExecuteScript(“return$(\”a:contains('ID1')\”).mouseover();”;//鼠标移动到主菜单
webDriver。FindElement(By.Id(“ID2”))。单击();

请给出一些点击隐藏元素的解决方案

共有2个答案

傅阳
2023-03-14

而不是使用语句线程。sleep()。在确保图元已显示后,可以尝试单击该图元。

在您获得要单击的WebElement后,请检查是否通过在上面的帖子中@Slanec所谈论的EXCETEdContition语句中使用isDisplay()方法来显示它。

通过这种方式,您可以确保只有在等待之后才会单击该元素。直到()返回true。i、 e将显示菜单选项

我用java编写代码,因为我不知道C#。但我想你能明白我想说什么-

    new WebDriverWait(driver, 60).until(new ExpectedCondition<Boolean>() {

        public Boolean apply(WebDriver driver ) {


            return driver.findElement(By.Id("ID2")).isDisplayed();
        }
    });

我希望这对你有所帮助。

白哲茂
2023-03-14

您可以使用预期的条件等待元素悬停在其上方后可单击(Thread.sleep()几乎总是错误的选择。5毫秒是不够的。)。

这个类的文档(OpenQA.Selenium.Support.UInamespace中的ExpectedConditions)被破坏了,因为我现在可以看到它们,但是如果您可以按照上面链接中的Java代码进行操作,下面是Java的预期条件-在C#中也几乎相同。

 类似资料:
  • 我无法单击子菜单。。尝试使用不同的xpath/id。。。。。 下面是html标签,主菜单是演示文稿(用红色箭头标记),子菜单在div下。 您能告诉我如何为此编写xpath吗。我想单击子菜单中的“假设”。 这里主菜单标签位于div(子菜单)的底部。 另附硒代码。请帮帮我。。。。

  • 我想我的问题以前已经回答过很多次了,但是我找不到确切的我的案例。 我有一个垂直菜单和子菜单,我想显示子菜单,只有当父菜单被点击(不是悬停),一次只显示一个子菜单,在点击菜单的某个地方后,我想要子菜单消失。 这就是我现在得到的--它基于现在的悬停。我试着把a:hover改成类似a:active的东西,但它并不能很好地工作(我在CSS方面不是很好)。 有谁知道吗?

  • 我使用BottomNavigationViewEx库在我的android应用程序中显示底部菜单栏,该库运行良好并修复了标准BottomNavigationView的许多缺点。 问题是,根据要求,我需要在菜单中显示7个选项,其中4个选项是对各自功能的直接访问,还有一个“更多”选项,该选项应该显示一个包含3个以上选项的子菜单(类似于一个工具栏,其中包含属性为showAsAction=“never”的项

  • 问题内容: 我试图单击菜单链接,但没有任何运气。它总是显示 异常- 线程“主” org.openqa.selenium.WebDriverException中的异常:未知 错误:元素在点(64,64)处不可单击。其他元素将 获得点击: 我有以下片段 这就是快照的样子 我正在使用以下代码来实现相同目的- 我确实检查了接受点击的DOM中的标签。但是我看到 了 具有一个附加属性,即 ; 使用以下配置:

  • 在我的应用程序中,我有一个活动,其中包含一个FrameLayout。在这个FrameLayout中,有一个片段,包含一个ToolBar和一个RecyclView。 在这个工具栏中,我有一个搜索按钮,它应该在项目单击时启动活动。但是,当我尝试使用onOptionsItemSelected时,应用程序会成功构建和安装,但当我尝试点击该按钮时,什么也没发生。Logcat也没有说什么。 能告诉我我做错了什

  • 我有一个点击单选按钮的代码,一开始我用的是Chrome。使用下面的代码: 我发现了一个错误: 做研究的时候,我把代码改成: 当我单击单选按钮时,标签会在单击时获得一个附加属性。 其他编辑: 这组按钮如下所示: