gpt4 book ai didi

Selenium:尝试在下拉列表中选择选项时元素不可见?

转载 作者:行者123 更新时间:2023-12-04 16:35:42 24 4
gpt4 key购买 nike

如何在下拉列表中选择项目Option 3

<span class="k-widget k-dropdown k-header form-control required" style="padding: 0px;" unselectable="on" role="listbox" aria-haspopup="true" aria-expanded="true" tabindex="0" aria-owns="assignee_listbox" aria-disabled="false" aria-readonly="false" aria-busy="false" aria-activedescendant="assignee_option_selected">
<span class="k-dropdown-wrap k-state-default" unselectable="on">
<select id="assignee" class="form-control required" style="padding: 0px; display: none;" name="assignedUserId" data-role="dropdownlist" title="">
<option value="28941">Option 1</option>
<option value="28938">Option 2</option>
<option value="28940">Option 3</option>
<option value="28942">Option 4</option>
<option value="28943" selected="selected">Option 5</option>
<option value="28939">Option 6</option>
</select>
</span>
</span>

我试图在下拉列表中选择选项 3,下面是我的代码:

public Page selectAsignee(String asignee){
try{
WebElement dropdownAsignee = connector.waitForControl(SBConstant.XPATH,dropdownAssignee,3);
// My xPath is //select[@id='assignee']
Select select = new Select(dropdownAsignee);
select.selectByVisibleText("Option 3");
return this;

}catch (StaleElementReferenceException s){
s.toString();
}
return this;
}

但它无法选择选项 3,尽管 Web 驱动程序可以检测到 id = "assignee"的选择。运行此代码后,它会抛出如下错误:

org.openqa.selenium.ElementNotVisibleException: Element is not currently visible and so may not be interacted with

我希望有人能指出我的错误,这将使这一切变得更好。

最佳答案

你已经做得很好了,

但是

问题在于您的 style-display 属性设置为“none”

style="padding: 0px; display: none;"

没有显示意味着没有任何东西对 Selenium 是“可见的”,因此您会得到 ElementNotVisibleException。

你可以尝试什么

1)

从 span 元素的类(k-dropdown、k-dropdown-wrap 等)可以看出,下拉列表可能由其他元素“操作”。如果您发现 div 或列表元素也包含有关您的选项的信息,则可以检查您的站点。像这样的东西:

<ul class="someClass" someOtherAttributes>
<li>
<a href="someHypertextRef">Option 1</a>
</li>
<li>
<a href="someHypertextRef">Option 2</a>
</li>
<li>
<a href="someHypertextRef">Option 3</a>
</li>
</ul>

然后您将需要处理这些其他元素。我已经多次看到这种从不更改其显示属性的选择元素。

2)

下拉菜单附近有“按钮”吗?或者您可以单击下拉菜单本身吗?如果是,则执行此操作,并检查显示属性是否更改。如果它确实更改为“阻止”或类似的东西,您只需在尝试查找选项之前单击下拉元素。

关于Selenium:尝试在下拉列表中选择选项时元素不可见?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31510087/

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