在選擇下拉框中的值時遇到了困難,用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
