关闭

【Selenium学习笔记】webdriver操作下拉框

4002人阅读 评论(0) 收藏 举报
分类:

网页上常见的下拉框有两种:一种是需要点击一下下拉框,才能弹出下拉列表的下拉框;还有一种是不需要点击,鼠标移动到下拉框上,就自动弹出下拉列表。

对于第一种类型的下拉框一般的处理是两次点击,第一点击弹出下拉框,第二次点击操作元素。第二种我们可以使用move_to_element()进行操作。


不需要点击的下拉框:

百度首页右上角的“设置”就是这样的下拉框。只需要把鼠标移动到上面,就会列出可选的下拉列表。

对于这种类型的下拉框,我们采用webdriver中的鼠标事件进行操作。webdriver中对鼠标的操作包括单机、右击、双击、拖动等,这些操作都封装在ActionChains类中。后面我们会专门针对这些事件进行总结,这里先专注对鼠标移动的操作。

先上源代码:

from selenium import webdriver

driver = webdriver.Firefox()
driver.get('http://ww.baidu.com')
driver.maximize_window()


setting = driver.find_element_by_link_text(u'设置')
webdriver.ActionChains(driver).move_to_element(setting).perform()
driver.find_element_by_link_text(u'高级搜索').click()
移动鼠标的操作首先通过webdriver实例化一个ActionChains类的对象,用该对象调用move_to_element() 方法将鼠标悬停在一个元素上,perform是用来执行move_to_element这个动作的。

需要点击的下拉框:

webdriver 对于一般的下拉框处理起来也相当简单,要想定位下拉框中的内容,首先需要定位到下拉框,也就是需要两次定位。

以百度“高级搜索”设置页面中的“时间:限定要搜索的网页的时间是”下拉列表为例,


我们想定位到其中的“最近一月”,我们可以这样做:

time_setting = driver.find_element_by_id('adv-setting-4')
time_setting.find_element_by_xpath("//option[@value='30']").click()
先定位到id为adv-setting-4的下拉框,然后在定位到value=‘30’的下拉项。


2
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:572740次
    • 积分:6114
    • 等级:
    • 排名:第4244名
    • 原创:155篇
    • 转载:39篇
    • 译文:2篇
    • 评论:24条
    联系方式
    最新评论