你的问题有两个部分:
- 通常:在其他 WebElements 中选择 WebElements
- 具体来说:阅读下拉列表中的所有选项并选择其中一个
在回答时,我假设您有一个名为“Driver”的 WebDriver 对象。
在其他 WebElement 中选择 WebElement
首先,我不确定你为什么提到SelectElement
- 我相信你想要的方法是FindElement()
.
您可以FindElement()
取消任何 SearchContext。WebDriver 对象是一个 SearchContext,因此您可以(理论上)通过调用Driver.FindElement()
.
WebElement 本身也是一个 SearchContext,因此您也可以调用.FindElement()
您已经找到的 WebElement。这对于将搜索范围从整个页面缩小到特定元素内很有用。
阅读下拉列表中的所有选项并选择其中一个
我查找了 Telerik Dropdown 的示例,以了解您可能正在处理的内容。我在这里找到了一个。
首先,您需要通过单击向下箭头图标打开下拉菜单。图标似乎是这样编码的:
<span class="rddlIcon"></span>
如果页面上只有其中一个,您可以找到它并单击它,如下所示:
Driver.FindElement(By.ClassName("rddlIcon")).Click();
似乎 Dropdown 代码如下所示:
<ul class="rddlList">
<li class="rddlItem">Item One</li>
<li class="rddlItem">Item Two</li>
<li class="rddlItem">Item Three</li>
</ul>
您在这里要做的是选择 <ul> WebElement,然后从那里找到您想要的列表项。
WebElement List = Driver.FindElement(By.ClassName("rddlList"));
//Get Item Three
WebElement Item = List.FindElement(By.XPath("//li[text()='Item Three']");
Item.click();