Java Selenium 2.37 XPath,在上下文菜单中查找一个项目,然后再次单击该项目
在Selenium 2.37中,当我分两步搜索时,我可以单击上下文菜单中的“打开”项:Java Selenium 2.37 XPath,在上下文菜单中查找一个项目,然后再次单击该项目,java,xpath,selenium-webdriver,Java,Xpath,Selenium Webdriver,在Selenium 2.37中,当我分两步搜索时,我可以单击上下文菜单中的“打开”项: 通过搜索以下XPath查找一些WebElement: td[@class=\“dijitmeneuitemlabel\”和“+”以(@id,\“dijit\u MenuItem\”)开头] 然后,对于这个WebElement列表中的每个WebElement,我会 字符串s=we.getText();如果(s.equals(“Open”)==true){…} 这个很好用 我的问题是,当我通过在XPath中包含文
任何建议都将不胜感激 您没有发送问题的完整示例,但据我所知,您没有等待加载某些内容(特别是如果您在SPA上执行此操作,它是一些onClick绑定)。尝试第一种硬编码等待一秒钟的方法,如果它单击,那么您需要找到一种方法来检查打开的元素是否绑定了单击。您可以添加一些额外的等待时间,如:
wait.until(ExpectedConditions.elementToBeClickable(By.id<locator>));
wait.until(ExpectedConditions.elementtobelickable(By.id));
此外,您还可以创建一些扩展的预期条件,将JavaScript注入浏览器并返回is click is bind。您说您可以“选择打开的条目”,但不能单击它。你选择它是什么意思?它是否以某种方式突出显示?感谢您的回复。我所说的“选择它”,是指运行的WebDriver代码选择了Open菜单项。但现在我又试了一次,那是不正确的。第二次实际发生的是上下文菜单出现。但是鼠标不会向下移动(在关联菜单中)到打开的项目。(这不同于第一次出现关联菜单时,鼠标向下移动到打开的项目,然后单击打开的项目。)我刚刚更新了原始问题。感谢宽恕森指出了我最初的错误。时间问题是Selenium的常见问题。也就是说,您试图使用xpath查找的项还不存在。此外,有时打开某个对象两次会在dom中创建两次,然后您无法确定它是否找到了可见的对象,而不是隐藏的旧对象(但仍在dom中)。这是我建议研究的两个常见问题。