2012-11-30 67 views
0

我想测试一个网站。我能够访问除菜单项以外的大多数Web元素。使用硒测试Javascript

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

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

更新:-------------------------------------------- ------------------------------------------ 网站上的菜单可能是一个上下文菜单。它使用左键单击打开。任何想法如何我可以访问其选项?

+1

Selenium RC使用JavaScript与浏览器交互,因此您应该也可以与这些元素进行交互。显示一些HTML会很有帮助。 另外,你有什么尝试,直到现在呢? – vidit

+0

我已经尝试了各种选择,但没有得到任何关于这个问题的任何地方。我所做的一切就是通过使用向下和向上箭头使用selenium向上滚动来访问菜单元素.sendkey()方法 – Steve

+0

您使用哪种浏览器?我们曾经在IE和Chrome中遇到类似的问题。 –

回答

0

我没有设法访问菜单项目使用硒以外的点击菜单,并通过使用向上和向下箭头滚动通过硒。

我用OpenScript为了记录/回放测试,并且它工作。在我的具体情况中,我使用的网站需要设置一个标志才能使其可测试。如果您在测试网站时遇到问题,您可能需要联系开发人员并询问是否设置了“自动化”标志。

0

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

+0

菜单中没有显示HTML,只要使用开发人员工具选择菜单按钮,它就会显示: 作为一个孩子,它只是显示: 文本 - 文件 – Steve

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 
+0

感谢您的这一点,但标签不是一个选择标签,而是一个td标签,所以我得到一个异常。 根据“文件”td,所有有一个JavaScript文件,据我所知: '' 下面是:'文本文件' – Steve

0

打开contextmenu并不那么容易。 直到现在,我通过执行一个javascript触发鼠标事件(没有找到其他解决方案)。 这simular到讨论: Trigger right-clickSelenium 2 right-click

有时是有用的,如果你只是触发潜在的JS-功能。 大部分时间开发人员可以给你一个入口点。 这会给你继续构建你的测试的可能性,并在一段时间后实现了通过触发事件打开contextmenu的javascript函数。