testing - 如何点击存在于 td 中的 "Logout"

标签 testing selenium webdriver selenium-webdriver

问题:如何点击下拉菜单中的“注销”

 <tr id="dijit_MenuItem_55" class="dijitReset dijitMenuItem" dojoattachevent="onmouseenter:_onHover,onmouseleave:_onUnhover,ondijitclick:_onClick" tabindex="-1" role="menuitem" dojoattachpoint="focusNode" aria-labelledby="dijit_MenuItem_55_text dijit_MenuItem_55_accel" style="-moz-user-select: none;" widgetid="dijit_MenuItem_55">
<tr id="dijit_MenuItem_56" class="dijitReset dijitMenuItem" dojoattachevent="onmouseenter:_onHover,onmouseleave:_onUnhover,ondijitclick:_onClick" tabindex="-1" role="menuitem" dojoattachpoint="focusNode" aria-labelledby="dijit_MenuItem_56_text dijit_MenuItem_56_accel" style="-moz-user-select: none;" widgetid="dijit_MenuItem_56">
<td class="dijitReset dijitMenuItemIconCell" role="presentation">
<td id="dijit_MenuItem_56_text" class="dijitReset dijitMenuItemLabel" dojoattachpoint="containerNode" colspan="2">Logout</td>

我试过

driver.findElement(By.id("processPortalUserDropdown")).click();
driver.findElement(By.linkText("Logout")).click();
OR
 driver.findElement(By.cssSelector("Logout")).click();

但是没有效果

注意:

1.我不能使用 id= dijit_MenuItem_56_text,因为它会针对每次登录或在网站中执行任何功能后动态变化。

2.我试过

   new     Select(driver.findElement(By.id("processPortalUserDropdown"))).selectByVisibleText("Logout"        );

但它显示错误信息为

 FAILED: testQTO01
   org.openqa.selenium.support.ui.UnexpectedTagNameException: Element should have been      "select" but was "div"
    Build info: version: '2.37.0', revision: 'a7c61cb', time: '2013-10-18 17:15:02'
   System info: host: 'TSSGMSL060', ip: '10.56.40.138', os.name: 'Windows 7', os.arch:       'x86', os.version: '6.1', java.version: '1.7.0_40'
    Driver info: driver.version: unknown
at org.openqa.selenium.support.ui.Select.<init>(Select.java:46)
at Com.Tss.Qto.QTO01.testQTO01(QTO01.java:59)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

请有人给我一个解决方案吗?..这将是很大的帮助.. 提前致谢。

最佳答案

尝试

new Select(driver.findElement(By.id("processPortalUserDropdown"))).selectByVisibleText("Logout")

关于testing - 如何点击存在于 td 中的 "Logout",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20185498/

相关文章:

java - RemoteWebDriver 无法转换为 SikuliWebDriver

testing - 我的网站应该在哪些浏览器上完美运行

testing - 当 Testcomplete 中的数据可更改时,检查数据是否已加载到网格中

java - 测试 Jersey 应用程序,使用 Jersey Injection 内置框架注入(inject)类 (HK2)

java - 从 Selenium Webdriver Java 的列表中选择一个随机元素

selenium - 为什么 XPath 在 Chrome84 中不高亮黄色标记?

php - PHP 测试套件

python-3.x - Selenium - 文本属性仅在调试器检查后才可用

selenium - NoSuchElementException,Selenium 无法定位元素

java - 如何使用 WebDriver 单击 <option> 元素?