由于Timeoutexception,无法在下拉列表中选择带有列表项的复选框



我正在尝试使用selenium python中的chrome web驱动程序在网页上执行自动化。

在一种情况下,我有一个包含80个列表项的下拉列表,每个列表项前面都有一个输入复选框。我需要点击给定列表中与列表项文本匹配的2个复选框。

由于超时异常,无法在下拉列表中选择带有列表项的复选框。

我在尝试单击下拉框中的列表项时遇到超时异常。注:

1.还观察到,一旦使用moveToElement单击下拉列表,就会出现加载指示符。

2.下拉列表有大约80个列表项,并且有滚动条。3.此下拉列表显示在下面链接中列出的另一个下拉列表旁边。

我接着说:无法使用selenium python 在无序列表中选择列表项

已开始使用具有预期Conditions概念的webdriver wait。

HTML :
HTML code:
=========
<div class="ms-drop bottom" style="display: block;">
<ul style="max-height: 400px;">
<li class="ms-select-all">      
<label><input type="checkbox" data-name="selectAlls_osVer">
[Select all]
</label>    
</li>
<li class="" style="false">     
<label class=""><input type="checkbox" data-name="selectItems_osVer" value="KK">
<span>
apq40 
</span>
</label>        
</li>
<li class="" style="false">
<label class=""><input type="checkbox" data-name="selectItems_osVer" value="KK_MR1">
<span>
sdm845  
</span>
</label>        
</li>
<li class="" style="false">
<label class=""><input type="checkbox" data-name="selectItems_osVer" value="KK_MR2">
<span>
msm8996 
</span>
</label>        
</li>
<li class="" style="false">
<label class=""><input type="checkbox" data-name="selectItems_osVer" value="KK_MR2">
<span>
msm8996e 
</span>
</label>        
</li>
.....
..... so on (approximately 80 elements are there)
</ul>
</div>

****尝试使用以下代码,但得到超时异常:***

语言:Python驱动因素:硒浏览器:chrome网络驱动程序:Chromewebdriver

我在尝试单击下拉列表中带有复选框的列表项时遇到超时异常。

chipset = [ 'sdm845', 'msm8996e' ]
for i in range(len(chipset)):
chipset_name = "{}".format(chipset[i])
WebDriverWait(driver,20).until(EC.element_to_be_clickable
((By.XPATH,"//div[@class='ms-drop bottom']//ul//li[.//span
[normalize-space(text())='"+ chipset_name + "']]//input"))).click()

注:1.还观察到,一旦使用moveToElement单击下拉列表,就会出现加载指示符。

2.下拉列表有大约80个列表项,并且有滚动条。此下拉列表将立即显示给另一个下拉列表。

  1. 我的元素是可见的,它是2nd&在下拉列表中选择第4个列表项,并且它是可见的。尽管出现超时异常。是因为加载图标出现了吗?

  2. 此外,我想知道如果我想要选择的列表项是不可见的,并且它出现在列表的末尾,如何继续,为了使其可见,我需要向下滚动列表。

预期:需要对和给定列表中的每个字符串匹配的所需列表项输入复选框执行单击操作。

实际:在包含滚动条的下拉列表中查找列表项时出现超时异常。

根据您的代码,您要等到20秒才能加载下拉列表中的元素,但可能您在Selenium中滚动时遇到问题,无法找到所有元素(所有选项(,这里的诀窍是只等待组合框中的第一个选项,然后您应该知道下拉列表已打开,您可以选择元素

相关内容

  • 没有找到相关文章

最新更新