selenium-webdriver(python) (十)
来源:互联网 发布:曲谱制作软件 编辑:程序博客网 时间:2024/05/22 17:07
本节重点
- 处理下拉框
- switch_to_alert()
- accept()
下拉框是我们最常见的一种页面元素,对于一般的元素,我们只需要一次就定位,但下拉框里的内容需要进行两次定位,先定位到下拉框,再定位到下拉框内里的选项。
drop_down.html (要放在python目录)
<html><body><select id="ShippingMethod" onchange="updateShipping(options[selectedIndex]);" name="ShippingMethod"><option value="12.51">UPS Next Day Air ==> $12.51</option><option value="11.61">UPS Next Day Air Saver ==> $11.61</option><option value="10.69">UPS 3 Day Select ==> $10.69</option><option value="9.03">UPS 2nd Day Air ==> $9.03</option><option value="8.34">UPS Ground ==> $8.34</option><option value="9.25">USPS Priority Mail Insured ==> $9.25</option><option value="7.45">USPS Priority Mail ==> $7.45</option><option value="3.20" selected="">USPS First Class ==> $3.20</option></select></body></html>
将上面的代码保存成html通过浏览器打开会看到一个最简单常见的下拉框,下拉列表有几个选项。
现在我们来选择下拉列表里的$10.69
#-*-coding=utf-8from selenium import webdriverimport os,timedriver= webdriver.Firefox()file_path = 'file:///' + os.path.abspath('drop_down.html')driver.get(file_path)time.sleep(2)m=driver.find_element_by_id("ShippingMethod")m.find_element_by_xpath("//option[@value='10.69']").click()time.sleep(3)driver.quit()
解析:
这里可能和之前的操作有所不同,首先要定位到下拉框的元素,然后选择下拉列表中的选项进行点击操作。
m=driver.find_element_by_id("ShippingMethod")
m.find_element_by_xpath("//option[@value='10.69']").click()
百度搜索设置下拉框操作
#-*-coding=utf-8from selenium import webdriverimport os,timedriver= webdriver.Firefox()driver.get("http://www.baidu.com")#进入搜索设置页driver.find_element_by_link_text("搜索设置").click()#设置每页搜索结果为100条m=driver.find_element_by_name("NR")m.find_element_by_xpath("//option[@value='100']").click()time.sleep(2)#保存设置的信息driver.find_element_by_xpath("//input[@value='保存设置']").click()time.sleep(2)driver.switch_to_alert().accept()#跳转到百度首页后,进行搜索表(一页应该显示100条结果)driver.find_element_by_id("kw").send_keys("selenium")driver.find_element_by_id("su").click()time.sleep(3)driver.quit()
解析:
当我们在保存百度的设置时会会弹出一个确定按钮;我们并没按照常规的方法去定位弹窗上的“确定”按钮,而是使用:
driver.switch_to_alert().accept()
完成了操作,这是因为弹窗比较是一个具有唯一性的警告信息,所以可以用这种简便的方法处理。
– switch_to_alert()
焦点集中到页面上的一个警告(提示)
– accept()
接受警告提示
转载自虫师
0 0
- selenium-webdriver(python) (十)
- 轻松自动化---selenium-webdriver(python) (十)
- Selenium-Webdriver(python) (十) --- 下拉框的选择
- selenium-webdriver(python) (一)
- selenium-webdriver(python) (二)
- selenium-webdriver(python) (三)
- selenium-webdriver(python) (四)
- selenium-webdriver(python) (五)
- selenium-webdriver(python) (六)
- selenium-webdriver(python) (七)
- selenium-webdriver(python) (八)
- selenium-webdriver(python) (九)
- Selenium WebDriver + Python 环境
- selenium webdriver (python)
- selenium webdriver (python)
- selenium-webdriver(python) (十四) -- webdriver原理
- selenium-webdriver(python) -- cookie处理
- Selenium WebDriver + Python 环境配置
- servlet生命周期
- Unity开发HTC vive 五、拾取和触碰
- jpa或bernate使用原生sql进行关联查询org.hibernate.hql.internal.ast.QuerySyntaxException: Path expected for join
- js屏蔽/过滤 特殊字符,输入就删除掉,实时删除,
- react native 实现动态高度Listview 和图文混排
- selenium-webdriver(python) (十)
- This Android SDK requires And...e ADT to the latest version.
- Android Studio Exception: Could not find method android() for arguments
- Android自定义View绘图基础(摘自技术前沿)
- jsp页面EL表达式不被解析的解决方法
- lua解析UserAgent
- 神经网络误差反向传播
- iOS10的适配总结(转)
- 如何估算网站日承受最大访问PV