Testing 如何点击;注销“;它存在于td内部

Testing 如何点击;注销“;它存在于td内部,testing,selenium,webdriver,selenium-webdriver,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_

问:如何点击下拉列表中的“注销”按钮

 <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>
但它不起作用

注:

1.我不能使用id=dijit\u MenuItem\u 56\u文本,因为每次登录或在站点中执行任何功能后,文本都会动态更改

2.我试过了

driver.findElement(By.id("processPortalUserDropdown")).click();
driver.findElement(By.linkText("Logout")).click();
OR
 driver.findElement(By.cssSelector("Logout")).click();
   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)
失败:testQTO01
org.openqa.selenium.support.ui.UnexpectedTagNameException:元素应为“select”,但为“div”
构建信息:版本:“2.37.0”,修订版:“a7c61cb”,时间:“2013-10-18 17:15:02”
系统信息:主机:'TSSGMSL060',ip:'10.56.40.138',os.name:'Windows 7',os.arch:'x86',os.version:'6.1',java.version:'1.7.0_40'
驱动程序信息:驱动程序。版本:未知
位于org.openqa.selenium.support.ui.Select.(Select.java:46)
位于Com.Tss.Qto.QTO01.testQTO01(QTO01.java:59)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(未知源)
有谁能给我一个解决方案吗?.这会很有帮助的。。 提前感谢。

尝试driver.findElement(By.id(“dijit\u MenuItem\u 56\u text”)。单击()

试试看

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

Actions builder = new Actions(driver);
builder.Click(driver.findElement(By.id("processPortalUserDropdown")))
    .Click(driver.findElement(By.linkText("Logout")))
    .Click()
    .Perform();

请尝试使用此定位器//td[contains(text(),'Logout')]


oASelFW.driver.findElement(By.xpath(“//td[contains(text(),'Logout')]”)。单击()

错误消息非常清楚,您使用的是
Select
类,该类仅用于
Select
HTML元素。听起来它本身并不是一个下拉列表,只是被设计成一个下拉列表,这让你误以为它是一个下拉列表。