在选择下拉框中的值时遇到了困难,用driver.find_element_by_id("").send_keys("")进行赋值不能成功获取下拉框中的值。
此次是补充以前的文档,以前是用xpath去获得select中的option,但是用xpath如果改变了顺序会很麻烦,也可以用Select去获得option,而且比较简单。
一、使用Select(这里用的是python,如果用Java的话也可以去搜一下,网上方法很多)
比如要选中下面select中的第2个option
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。 |
下面是我这次编写过程中与到的问题实例。
一、具体的页面代码如下:
二、编写的脚本
driver.find_element_by_xpath("//select[@id='CerType']/option[#value=2]").click()
通过上面的代码成功获得了“护照”。
PS:推荐一个小插件,XPath Checker,Firefox的附件组件,可以直接右键查看元素的XPath。
发布日期:2014-03-07 10:54