我在这里过去两天真的被困了。我试图点击子菜单,当我尝试点击子菜单时,我得到一个错误,如下所示
Element not found for the sub menu.
我试过下面的代码
WebElement element = driver.findElement(By.id("x-menu-el-P46915788081933044__folderbrowser_PJL"));
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click();", element);
HTML代码
<li id="x-menu-el-P46915788081933044__folderbrowser_PJL" class="x-menu-list-item">
<a id="P46915788081933044__folderbrowser_PJL" class="x-menu-item" href="javascript:var abc = doNothing()" unselectable="on" hidefocus="true">
<img id="ext-gen926" class="x-menu-item-icon " src="netmarkets/images/import.gif">
<span id="ext-gen927" class="x-menu-item-text">Upload Documents from Compressed File</span>
答案 0 :(得分:0)
您应该使用类名,而不是使用ID。
WebElement element = driver.findElement(By.ClassName("x-menu-list-item"));
或者您可以尝试使用css选择器
WebElement element = driver.findElement(By.cssSelector("li[class='x-menu-list-item']"));
由于上面的内容会返回多个项目,您可以使用它们返回所需的确切元素:
WebElement element = driver.findElement(By.linkText("Upload Documents from Compressed File"));
答案 1 :(得分:0)
首先单击菜单,然后尝试以下语句 -
driver.findElement(By.xpath(&#34; //的Li [@class =&#39 X-菜单列表项&#39;] //跨度[含有(文本()&#39 ;从Compressed&#39;)上传文件))。click(); 或直接试试这个 -
driver.findElement(By.xpath(&#34; // span [contains(text(),&#39;从压缩上传文档&#39;)])。click();
我猜大多数错误是由于单词之间的跨度名称空格,如果上述不起作用,请附上截图或提供html代码的一些细节,这样我们就可以尝试更多选项,最好的。< / p>