gpt4 book ai didi

python - 在selenium中单击select2下拉列表时出现问题

转载 作者:太空宇宙 更新时间:2023-11-03 20:30:40 29 4
gpt4 key购买 nike

我使用 selenium 和 python 编写测试。下拉列表有问题。

我尝试使用直接单击和 JavaScript 执行脚本方法,但它们都不起作用。我使用selenium IDE来查找id、css、xpath等。所以有不止一个选项,我都尝试了。

#select_btn = self.driver.find_element_by_css_selector("#select2-2v7k-container")

#select_btn = self.driver.find_element_by_css_selector(".col-md-12")

#select_btn = self.driver.find_element_by_id("select2-2v7k-container")

#select_btn = self.driver.find_element_by_id("select2-t2zd-container")

select_btn = self.driver.find_element_by_xpath("//span[@id='select2-2v7k-container']")

self.driver.execute_script("arguments[0].click();", select_btn)

#select_btn.click()

这是元素部分(它是内部产品,因此没有公共(public)网址)

<span _ngcontent-c3="" class="col-md-9 col-sm-8 col-xs-8">
<dashboard-saved-reports-select-component _ngcontent-c3="" _nghost-c5=""><select _ngcontent-c5="" aria-hidden="true" class="col-md-12 col-sm-12 col-xs-12 form-control select2-hidden-accessible" style="width: 100%" tabindex="-1">
<option _ngcontent-c5="" value="-1">Select A saved Report</option>
<optgroup _ngcontent-c5="" label="Reports 1">
<!----><option _ngcontent-c5="" value="447">options1
</option><option _ngcontent-c5="" value="457">options2
</option>
</optgroup>
<optgroup _ngcontent-c5="" label="Reports 2">
<!----><option _ngcontent-c5="" value="1020">options1
</option><option _ngcontent-c5="" value="1013">option2
</option>
</optgroup>
<optgroup _ngcontent-c5="" label="Reports 3">
</option><option _ngcontent-c5="" value="1035">denemeee
</option><option _ngcontent-c5="" value="1033">deneme-rapor
</option>
</optgroup>
<optgroup _ngcontent-c5="" label="Reports 4">
<!----><option _ngcontent-c5="" value="1032">dasd
</option><option _ngcontent-c5="" value="1025">deneeeeee
</option><option _ngcontent-c5="" value="1014">deneme
</option>
</optgroup>
</select><span class="select2 select2-container select2-container--default select2-container--below select2-container--focus" dir="ltr" style="width: 100%;">
<span class="selection"><span class="select2-selection select2-selection--single" role="combobox" aria-haspopup="true" aria-expanded="false" tabindex="-1" aria-labelledby="select2-cawo-container">
<span class="select2-selection__rendered" id="select2-cawo-container" title="Select A saved Report">Select A saved Report</span>
<span class="select2-selection__arrow" role="presentation"><b role="presentation"></b></span></span></span>
<span class="dropdown-wrapper" aria-hidden="true"></span></span>
</dashboard-saved-reports-select-component>
</span>

是否有其他方法或解决方法来检测并打开下拉列表。我发现了一些 javascript 方法来使下拉列表可见,但它不起作用。

最佳答案

我检查了 id 部分,发现 id 在每次刷新时都会发生变化。@id='select2-2v7k-container'。

我发现我可以使用下拉菜单的箭头部分。它只能工作一次,但对于我的测试用例来说已经足够了。

 #select_btn = self.driver.find_element_by_css_selector(".select2-selection__arrow") 
select_btn = self.driver.find_element_by_xpath("//span/span[2]")

关于python - 在selenium中单击select2下拉列表时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57536120/

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