python+webdriver,选取Select下拉框中的值

在选择下拉框中的值时遇到了困难,用driver.find_element_by_id("").send_keys("")进行赋值不能成功获取下拉框中的值。
 
此次是补充以前的文档,以前是用xpath去获得select中的option,但是用xpath如果改变了顺序会很麻烦,也可以用Select去获得option,而且比较简单。
 
一、使用Select(这里用的是python,如果用Java的话也可以去搜一下,网上方法很多)
比如要选中下面select中的第2个option
python+webdriver,选取Select下拉框中的值
element = self.driver.find_element_by_id("Operator0")
sel = Select(element)
sel.select_by_value("!=")
这样就可以获得这个option了,当然这几行代码可以合为一行
Select(self.driver.find_element_by_id("Operator0")).select_by_value("!=")
 
 
二、使用Xpath:  
下面是W3C网站上关于xpath的一些知识,有兴趣的可以自己去查找来看一下。

路径表达式结果

/bookstore/book[1] 选取属于 bookstore 子元素的第一个 book 元素。
/bookstore/book[last()] 选取属于 bookstore 子元素的最后一个 book 元素。
/bookstore/book[last()-1] 选取属于 bookstore 子元素的倒数第二个 book 元素。
/bookstore/book[position()<3] 选取最前面的两个属于 bookstore 元素的子元素的 book 元素。
//title[@lang] 选取所有拥有名为 lang 的属性的 title 元素。
//title[@lang='eng'] 选取所有 title 元素,且这些元素拥有值为 eng 的 lang 属性。
/bookstore/book[price>35.00] 选取 bookstore 元素的所有 book 元素,且其中的 price 元素的值须大于 35.00。
/bookstore/book[price>35.00]/title 选取 bookstore 元素中的 book 元素的所有 title 元素,且其中的 price 元素的值须大于 35.00。
下面是我这次编写过程中与到的问题实例。
一、具体的页面代码如下:
 
python+webdriver,选取Select下拉框中的值
二、编写的脚本
driver.find_element_by_xpath("//select[@id='CerType']/option[#value=2]").click()
通过上面的代码成功获得了“护照”。
 
PS:推荐一个小插件,XPath Checker,Firefox的附件组件,可以直接右键查看元素的XPath。
 
 
 
 
 
                                                  发布日期:2014-03-07 10:54
上一篇:jQuery动态生成