HTML:
<div id="Toolbar" style="color: rgb(35, 35, 34);">
<ul class="dropdownMenu" style="display: none;"></ul>
<div id="LeftToolbar" style="display: inline-block; width: 495px;">
<ul class="dropdownMenu">
<li>
<div id="ScreenLayout" class="icon ScreenLayout group show" title="Screen Layout Selection">
<div id="ScreenLayoutIcon" class="icon show SCREEN1x1" title="Screen Layout 1x1" style="display: inline-block;"></div>
<div id="ScreenLayoutArrow" class="icon DROPDOWNARROW show" title="" style="display: inline-block;"></div>
</div>
</li>
我想使用Selenium + Java选择“ScreenLayoutIcon”。
我的代码:
driver.findElement(By.id("LeftToolbar"));
driver.findElement(By.xpath("//*@id='ScreenLayout']//ul")).click();
List<WebElement> options = driver.findElements(By.tagName("li"));
for (WebElement option : options) {
if (option.getText().equals("Screen Layout")) {
option.click();
}
}
1条答案
按热度按时间oiopk7p51#
有几个问题。
1.你的第一行代码什么也不做。
你从页面中获取一个元素,但你不对它做任何事情,也不把它存储在一个变量中。
1.在第二行中,XPath不是有效的语法。
应该是的
但是...根据您发布的HTML,DIV下没有ID为“ScreenLayout”的UL。
1.您的循环正在寻找包含文本“Screen Layout”的LI,但根据您发布的HTML,它们都没有。
我看到的对“ScreenLayoutIcon”的唯一引用是这个DIV的ID
如果你的HTML是正确的(我怀疑它不是),这应该点击你所要求的元素。