首页新闻找找看学习计划

Python+Selenium中,关于<select><option>标签选择不上的问题?

0
悬赏园豆:50 [已解决问题] 解决于 2017-06-14 09:44

HTML:
<html>
<head><title>TEST_SELECT</title></head>
<body>
<div class="div1">
<select id='select' class='css1'>
<option id='1' value='a'>AAA</option>
<option id='2' value='b'>BBB</option>
<option id='3' value='c'>CCC</option>
<option id='4' value='d'>DDD</option>
<option id='5' value='e'>EEE</option>
</select>
</div>
</body>


Python:

from selenium import webdriver
from selenium.webdriver.support.select import Select
driver=webdriver.Firefox()
driver.get(r"file:///C:/Users/Administrator/Desktop/test.html")
s1=driver.find_element_by_id('select')
s1.click()
Select(s1).select_by_index(4)

就最后一条命令,不管改成何种形式,死活也没有反应,各种方法(Select、find_xpath/id())都试过了click(),也没有任何报错。

我选择死亡~求帮忙啊,或者帮忙写下修改方案,难道我环境有毒么QAQ

洛雨寒殇的主页 洛雨寒殇 | 初学一级 | 园豆:9
提问于:2017-03-20 14:29
< >
分享
最佳答案
1

不需要做s1.click()操作

直接:Select(driver.find_element_by_id("select")).select_by_id("1")

收获园豆:50
江诗 | 菜鸟二级 |园豆:262 | 2017-03-21 14:47

find/Select的各种方法我都试过了index/value/id,都不行;

很妖啊,怎么试都不行,我都在考虑是不是换个软件环境试试了

洛雨寒殇 | 园豆:9 (初学一级) | 2017-03-21 16:22

@洛雨寒殇: 你要确认id:select有没有重复的

江诗 | 园豆:262 (菜鸟二级) | 2017-03-22 09:12
其他回答(1)
1

哈哈 你在代码里下了毒

1使用Select首先要引入Select类

2定位父元素select,然后通过tag name找到所有option,得到option元素的数组,然后通过数组索引([1])定位,最后click.

driver.find_element_by_id("id =select").find_elements_by_tag_name("option")[1].click();

ycyzharry | 园豆:18637 (专家六级) | 2017-03-20 19:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册