0

我正在尝试测试一个网站。我能够访问大多数网络元素,除了菜单项。

基本上有一个下拉菜单,我设法使用 Selenium 单击菜单,从而打开下拉菜单。现在我需要单击菜单中的一个元素,但菜单似乎是用 Javascript 编写的,而不是 Web 元素,所以我找不到访问菜单项的方法。

有任何想法吗?我特别需要在 Selenium 中执行此操作。

更新: - - - - - - - - - - - - - - - - - - - - - - - - -------------------------------------- 网站上的菜单可能是上下文菜单。它是使用左键单击打开的。有什么想法可以访问它的选项吗?

4

4 回答 4

0

菜单可以使用页面的 javascript 构建和操作,但它将以 html 的形式存在。您可以使用 Selenium 与此 html 进行交互。

于 2012-11-30T09:32:24.140 回答
0
 WebElement dropDownListBox = driver.findElement(By.id("Menu_id")); 
                  Select clickThis = new Select(dropDownListBox);                
                  clickThis.selectByVisibleText(activity); //If you know visible text
                //clickThis.getFirstSelectedOption();  // This will auto select first option in the drop down                
               // clickThis.selectByValue(1); //if you the value of drop down list items
于 2012-11-30T19:02:00.393 回答
0

打开上下文菜单并不容易。到目前为止,我正在通过执行 javascript 来触发鼠标事件(没有找到其他解决方案)。这与该讨论类似: 触发右键单击Selenium 2 右键单击

有时它很有用,如果你只是触发底层的 js 函数。大多数时候,开发人员可以给你一个入口点来调用。这将使您有可能继续构建您的测试,并且在一段时间后您实现了通过触发事件打开上下文菜单的 javascript 函数。

于 2012-12-03T12:24:22.210 回答
0

除了通过单击菜单并使用向上和向下箭头在 selenium 中滚动浏览项目之外,我还没有设法使用 Selenium 访问菜单项。

我使用 OpenScript 来记录/回放测试,它已经奏效了。在我的特殊情况下,我使用的网站需要设置一个标志以使其可测试。如果您在测试网站时遇到问题,您可能需要联系开发人员并询问是否设置了“自动化”标志。

于 2013-01-21T13:32:18.753 回答