如何在seleniumWebDriver for Java中从表中选择项目
我是QA自动化方面的新手,我正在为此使用selenium 我正在尝试选择从表中打开的子菜单。我想选择的选项是“Nueva Carta Crédito” 菜单中的代码为:如何在seleniumWebDriver for Java中从表中选择项目,java,selenium,selenium-webdriver,Java,Selenium,Selenium Webdriver,我是QA自动化方面的新手,我正在为此使用selenium 我正在尝试选择从表中打开的子菜单。我想选择的选项是“Nueva Carta Crédito” 菜单中的代码为: <div id='lmoptions' style="border-style: outset;font-size:10;font-family:Verdana, Geneva, Arial, Helvetica, sans-serif;width: 100%;height: 5px;position: absolute
<div id='lmoptions' style="border-style: outset;font-size:10;font-family:Verdana, Geneva, Arial, Helvetica, sans-serif;width: 100%;height: 5px;position: absolute;background-color: #88BBD9;" >
<table id='lmoptionstable'>
<tr onmouseover="parent.highliterow(this)" onclick="parent.clickModule('immenu','IM','V', this.children[0].innerText);parent.hidepopup();"><td><label style="font-size:10;font-family:Verdana, Geneva, Arial, Helvetica, sans-serif;width: 120px;overflow:hidden;">Vista</label></td></tr>
<tr onmouseover='parent.highliterow(this)' onclick="parent.clickModule('immenu','IM','I', this.children[0].innerText);parent.hidepopup();"><td><label style="font-size:10;font-family:Verdana, Geneva, Arial, Helvetica, sans-serif;width: 120px;overflow:hidden;">Nueva Carta Crédito</label></td></tr>
<tr onmouseover='parent.highliterow(this)' onclick="parent.clickModule('immenu','IM','CP', this.children[0].innerText);parent.hidepopup();"><td><label style="font-size:10;font-family:Verdana, Geneva, Arial, Helvetica, sans-serif;width: 120px;overflow:hidden;">Preaviso Completo</label></td></tr>
<tr onmouseover='parent.highliterow(this)' onclick="parent.clickModule('immenu','IM','A', this.children[0].innerText);parent.hidepopup();"><td><label style="font-size:10;font-family:Verdana, Geneva, Arial, Helvetica, sans-serif;width: 120px;overflow:hidden;">Enmienda</label></td></tr>
<tr onmouseover='parent.highliterow(this)' onclick="parent.clickModule('immenu','IM','N', this.children[0].innerText);parent.hidepopup();"><td><label style="font-size:10;font-family:Verdana, Geneva, Arial, Helvetica, sans-serif;width: 120px;overflow:hidden;">Negociación</label></td></tr>
<tr onmouseover='parent.highliterow(this)' onclick="parent.clickModule('immenu','IM','U', this.children[0].innerText);parent.hidepopup();"><td><label style="font-size:10;font-family:Verdana, Geneva, Arial, Helvetica, sans-serif;width: 120px;overflow:hidden;">Actualización</label></td></tr>
<tr onmouseover='parent.highliterow(this)' onclick="parent.clickModule('immenu','IM','W', this.children[0].innerText);parent.hidepopup();"><td><label style="font-size:10;font-family:Verdana, Geneva, Arial, Helvetica, sans-serif;width: 120px;overflow:hidden;">Bandeja de Trabajo</label></td></tr>
</table>
远景
新喀里多尼托省
完全前置
恩米恩达
Negociación
扎西翁
特拉巴霍之家酒店
有人能帮我吗?当你发布问题时,你应该插入你解决问题的尝试: 你可以这样做:
WebElement table= driver.findElementById("lmoptionstable");
WebElement el= table.findElement(By.xpath(".//tr/td/label[text()='Nueva Carta Crédito']"));
el.click();
如果Nueva Carta Crédito选项可见,您只需单击它,只需使用以下功能:
driver.findElementByXPath("//*[text()='Nueva Carta Crédito']").Click();
如果要单击的图元可见
driver.findElementByXPath("//*[text()='Nueva Carta Crédito']").Click();
如果要单击的图元仅在鼠标悬停/悬停后可见
Actions action = new Actions(driver);
WebElement elementToHover = driver.findElement(By.id("lmoptionstable"));
WebElement elementToClick = driver.findElement(By.xpath("//*[text()='Nueva Carta Crédito']"));
action.moveToElement(elementToHover).click(elementToClick).build().perform();
我犯了一个错误。我用了“司机”而不是“桌子”。如果html只是这个,那么您是对的。否则,最好首先确定表。将Nueva Carta Crédito设置为WebElement的原因是什么?只是为了可读性。谢谢,@DavidePatti当我执行时,我得到这个异常org.openqa.selenium.elementNotInteractiableException:无法单击Element欢迎使用堆栈溢出!请参阅:SO的期望是,用户提问时不仅要进行研究以回答自己的问题,还要分享研究、代码尝试和结果。这表明你花了时间来帮助自己,它使我们避免重复显而易见的答案,最重要的是,它帮助你得到一个更具体和相关的答案!另见: