【发布时间】:2021-01-21 15:12:17
【问题描述】:
我是 Selenium 的新手,在单击引导下拉菜单中的链接时遇到问题。这是标记:
<div class="dropdown float-lg-right">
<button class="btn btn-sm dropdown-toggle" type="button" id="dropdownMenuButton"
data-toggle="dropdown">Select Action
</button>
<div class="dropdown-menu">
<a class="dropdown-item" href="/controller/action?id=123">Add/Update Status</a>
<button class="dropdown-item">Edit</button>
<button class="dropdown-item">Send Update</button>
</div>
</div>
这是当前尝试执行单击添加/更新状态链接的代码:
public static By addUpdateStatusDropDown = By.Id("dropdownMenuButton");
public static By addUpdateStatus = By.XPath("//*[contains(.,'Add/Update Status')]");
public void AddUpdateStatusClick()
{
//This does expand the drop down
_wait.Until(ExpectedConditions.ElementIsVisible(addUpdateStatusDropDown )).JSClick(driver);
//This does not select the <a>Add/Update Status</a> tag
_wait.Until(ExpectedConditions.ElementIsVisible(addUpdateStatus )).JSClick(driver);
}
附加说明。此下拉列表存在于表格单元格中,因此会有多行与添加/更新状态文本有链接。我只对选择第一行中的第一个感兴趣。
有人可以帮我弄清楚如何模拟点击下拉列表中的“添加/更新状态”链接吗?
【问题讨论】:
-
你可以试试下面的 xpath
//div[@class='dropdown float-lg-right']//div[@class='dropdown-menu']/a[text()='Add/Update Status']
标签: selenium selenium-webdriver xpath webdriver webdriverwait