gpt4 book ai didi

c# - 如何在 Selenium 中使用 Telerik 下拉菜单?

转载 作者:行者123 更新时间:2023-11-30 20:53:42 25 4
gpt4 key购买 nike

我刚刚开始使用 Selenium Webdriver。但是我坚持使用 Telerik 下拉菜单。

我不能使用 SelectElement,因为下拉列表出现在 span 元素中。如何阅读下拉列表中的所有可用选项,然后进行选择。

添加更多信息:下拉列表由 JSON/JQuery 填充。 HTML 示例如下。跨度元素之间的文本会根据您从下拉列表中选择的内容而变化。下拉列表中的所有选项在生成的 HTML 中的任何地方都不可用。

<div class="t-dropdown-wrap t-state-default">
<span class="t-input">To be approved</span>

我的猜测是我必须执行 javascript。不确定如何去做。

最佳答案

您的问题分为两部分:

  1. 通常:在其他 WebElement 中选择 WebElement
  2. 具体来说:阅读下拉列表中的所有选项并选择其中一个

在回答时,我假设您有一个名为“Driver”的 WebDriver 对象。

在其他 WebElements 中选择 WebElements

首先,我不确定您为什么提到 SelectElement - 我相信您想要的方法是 FindElement()
您可以从任何 SearchContext 调用 FindElement()。 WebDriver 对象是一个 SearchContext,因此您可以(理论上)通过调用 Driver.FindElement() 在页面上的任何位置找到 WebElement。
WebElement 本身也是 SearchContext,因此您还可以从已找到的 WebElement 调用 .FindElement()。这对于将搜索范围从整个页面缩小到特定元素非常有用。

阅读下拉列表中的所有选项并选择其中一个

我查找了一个 Telerik 下拉列表的示例,以了解您可能要处理的内容。我找到了一个 here .

首先,您需要通过单击向下箭头图标打开下拉菜单。看起来图标是这样编码的:

<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>

您在这里要做的是选择

    WebElement,然后从那里找到您想要的列表项。

    WebElement List = Driver.FindElement(By.ClassName("rddlList"));
    //Get Item Three
    WebElement Item = List.FindElement(By.XPath("//li[text()='Item Three']");
    Item.click();

关于c# - 如何在 Selenium 中使用 Telerik 下拉菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19770564/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com