gpt4 book ai didi

java - 无法使用 java 从 selenium webdriver 的下拉列表中选择选项

转载 作者:行者123 更新时间:2023-12-02 10:53:15 24 4
gpt4 key购买 nike

我正在尝试从下拉列表中选择一个值。我已经检查了所有与之相关的帖子,但无法找到解决方案。

这是我的下拉列表的 HTML 代码:

<select class="select2 visible" data-val="true" data-val-number="The field ClientId must be a number." id="ClientId" name="ClientId" tabindex="-1" title="" style="display: none;">
<option value="">Client</option>
<option value="22">ABC</option>
<option value="7">ABC1</option>
<option value="18">ABC2</option>
<option value="27">ABC3</option>
<option value="26">ABC4</option>
<option value="31">ABC5</option>
<option value="12">ABC6</option>
<option value="19">ABC7</option>
<option value="72">DGX Client</option>
<option value="57">DS Sampler</option>
<option value="25">Group123</option>
</select>

我在 Selenium Webdriver 中编写的用于获取值的代码:

@FindBy(id="ClientId")
WebElement clientDropDown;
waitTime = new WebDriverWait(driver,20);
waitTime.until(ExpectedConditions.visibilityOf(clientDropDown));
Select client=new Select(clientDropDown);
client.selectByVisibleText("DGX Client");

错误:org.openqa.selenium.TimeoutException:预期条件失败:WAITING [[ChromeDriver: XP 上的 chrome (6fa8cbb25476bea9b789aff19a6edf)] -> id: ClientId] 的可见性(尝试了 30 秒,间隔 500 毫秒) )

enter image description here

最佳答案

在此假设下进行操作。

查看您的select如何被display: none样式隐藏:

<select ... style="display: none;">
^^^^^^^^^^^^^^^^^^^^^

我认为这是因为它实际上在 UI 上的表示方式不同,并且每当实际的下拉表示发生变化时,这个 select 都会由 javascript 进行操作。

如果是这种情况,您可以检查实际下拉列表的外观,并使用 click() 命令组合打开下拉列表并选择所需的选项(请注意,您不会在这种情况下能够使用 Select 类,因为它被设计为仅用于 select 元素)。

或者,您可以使 select 元素可见并继续:

String js = "arguments[0].style.display='block'"; 
((JavascriptExecutor) driver).executeScript(js, clientDropDown);

Select client = new Select(clientDropDown);
client.selectByVisibleText("DGX Client");

关于java - 无法使用 java 从 selenium webdriver 的下拉列表中选择选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51996278/

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