有一个网页,我正在尝试使用python硒填写表格。但是我对下面的组合下拉框感到震惊。
这是网页代码:
<select class="in select2-hidden-accessible" name="scrip[]" id="scrip" tabindex="-1" aria-hidden="true">
<option value="ACC19NOV">ACC 28-NOV-19</option>
<option value="ACC19DEC">ACC 26-DEC-19</option>
<option value="ACC20JAN">ACC 30-JAN-20</option>
<option value="ADANIENT19NOV">ADANIENT 28-NOV-19</option>
<option value="ADANIENT19DEC">ADANIENT 26-DEC-19</option>
<option value="ADANIENT20JAN">ADANIENT 30-JAN-20</option>
.
.
.
<option value="SBIN26DEC">SBIN 26-DEC-19</option>
.
.
</select>
使用Select
的Python代码:
test = Select(driver.find_element_by_id('script'))
在此显示以下错误:
NoSuchElementException:消息:没有这样的元素:无法找到元素:{“ method”:“ css选择器”,“ selector”:“ [id =” script“]”} (会话信息:chrome = 78.0.3904.108)
如果我尝试使用'Xpath'访问元素,那么在send_keys
中只会传递部分值。下面的代码:
test = driver.find_element_by_xpath('//*[@id="scrip"]')
test.send_keys('SBIN 26-DEC-19')
只有'26 -DEC-19'被通过,无法继续前进。
答案 0 :(得分:0)
您需要更改test = Select(driver.find_element_by_id('scrip'))
。因为您的id =“ scrip”。
答案 1 :(得分:0)
尝试下面的代码
selectOpt = select(driver.find_element_by_id('scrip'))
# select by visible text
selectOpt.select_by_visible_text('SBIN 26-DEC-19')
或者您可以按xpath查找选项,然后按如下所示单击文本
selectEle = driver.find_element_by_id('scrip')
selectEle.click()
options=selectEle.find_elements_by_tag_name('option')
for optionEle in options:
if optionEle.text == 'SBIN 26-DEC-19':
optionEle.click()
break
答案 2 :(得分:0)
我的代码中有一个Typo错误,其中id是 scrip ,而不是我正在尝试的 script 。一旦更正了相同的代码,就会给出正确的结果。感谢您指出。