如何在seleniumWebDriver for Java中从表中选择项目

如何在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

我是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;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的期望是,用户提问时不仅要进行研究以回答自己的问题,还要分享研究、代码尝试和结果。这表明你花了时间来帮助自己,它使我们避免重复显而易见的答案,最重要的是,它帮助你得到一个更具体和相关的答案!另见: