无法使用网络驱动程序python selenium

时间:2019-11-27 08:23:46

标签: python selenium

有一个网页,我正在尝试使用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'被通过,无法继续前进。

3 个答案:

答案 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 。一旦更正了相同的代码,就会给出正确的结果。感谢您指出。