今天咱们继续前边的练习,学习和练习一下:如何使用webdriver方法获取当前测试页面的URL、如何获取当前页面的title、如何打开浏览器的一个新建页面、如何操做单选按钮等等,这些小练习,来巩固基础。html
本小节介绍如何经过webdriver方法获取当前测试页面的URL。获取当前URL有什么用处呢,通常URL能够帮助咱们判断跳转的页面是否正确,或者URL中部分字段能够做为咱们自动化测试脚本期待结果的一部分。由于这里做为练习宏哥在这里提一下,为的是就python
是小伙伴或者童鞋们有个印象,在用到的时候知道怎么用便可。git
相关脚本代码以下:github
# coding=utf-8🔥 # 1.先设置编码,utf-8可支持中英文,如上,通常放在第一行 # 2.注释:包括记录建立时间,建立人,项目名称。 ''' Created on 2019-12-03 @author: 北京-宏哥 QQ交流群:705269076 Project: python+ selenium自动化测试练习篇4 ''' # 3.导入模块 import time from selenium import webdriver driver = webdriver.Chrome() driver.maximize_window() driver.implicitly_wait(6) driver.get("http://www.baidu.com/") time.sleep(1) driver.find_element_by_link_text("新闻").click() time.sleep(1) print (driver.current_url) # current_url 方法能够获得当前页面的URL driver.quit()
运行代码后,控制台打印以下图的结果web
本小节介绍了如何获取当前页面的URL的值,本文介绍如何获取当前页面的title,这个也能够做为测试结果的依据,经过获得的title和预期的值对比,能够支持咱们判断页面跳转正确。浏览器
相关脚本代码以下:ide
# coding=utf-8🔥 # 1.先设置编码,utf-8可支持中英文,如上,通常放在第一行 # 2.注释:包括记录建立时间,建立人,项目名称。 ''' Created on 2019-12-03 @author: 北京-宏哥 QQ交流群:705269076 Project: python+ selenium自动化测试练习篇4 ''' # 3.导入模块 import time from selenium import webdriver driver = webdriver.Chrome() driver.maximize_window() driver.implicitly_wait(6) driver.get("http://www.baidu.com/") time.sleep(1) driver.find_element_by_link_text("新闻").click() time.sleep(1) print (driver.title) # title方法能够获取当前页面的标题显示的字段 driver.quit()
运行代码后,控制台打印以下图的结果学习
本小节介绍如selenium方法打开一个新的tab,咱们知道在浏览器里,咱们按住 ctrl+ t 就能够新打开一个tab。因此咱们学习如何利用webdriver中send_key 的方法去触发ctrl+t的效果。咱们利用火狐浏览器来演示。测试
相关代码以下:ui
主要是调用了keys模块下相关方法,能够经过这个方法,输入任何一个键盘上支持的字符或者快捷键。
# coding=utf-8🔥 # 1.先设置编码,utf-8可支持中英文,如上,通常放在第一行 # 2.注释:包括记录建立时间,建立人,项目名称。 ''' Created on 2019-12-03 @author: 北京-宏哥 QQ交流群:705269076 Project: python+ selenium自动化测试练习篇4 ''' # 3.导入模块 import time from selenium import webdriver from selenium.webdriver.common.keys import Keys driver = webdriver.Firefox() driver.maximize_window() driver.implicitly_wait(6) driver.get("http://www.baidu.com/") time.sleep(1) ele = driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + 't') # 触发ctrl + t time.sleep(1)
运行代码后,控制台打印以下图的结果
为了看得清楚,咱们把退出浏览器的代码去掉,能够清楚的看到打开了一个新的窗口,以下图:
本小节介绍如何利用selenium中的方法去操做单选按钮(Radio Button)。
利用百度搜索设置页面两个单选按钮举例
默认是选择新闻全文,我试试在二者以前来回点击。
实际上,勾选一个单选按钮,也就是调用元素方法click()
咱们利用for语句遍历这两个单选按钮,依次点击他们。
相关脚本代码以下:
# coding=utf-8🔥 # 1.先设置编码,utf-8可支持中英文,如上,通常放在第一行 # 2.注释:包括记录建立时间,建立人,项目名称。 ''' Created on 2019-12-03 @author: 北京-宏哥 QQ交流群:705269076 Project: python+ selenium自动化测试练习篇4 ''' # 3.导入模块 from selenium import webdriver driver = webdriver.Chrome() driver.maximize_window() driver.get('http://www.baidu.com') driver.implicitly_wait(8) for i in driver.find_elements_by_xpath(".//*[@id='se-settting-1']/input[@type='radio']"): i.click()
运行代码后,控制台打印以下图的结果
注意:
1. 这里咱们第一次用到了find_elements,也就是找一组元素,返回的是一个列表
2. 循环这个列表,点击全部的单选按钮,这里应该只有2个符合上面XPath定位方法的单选按钮
小结这部分今天主要是总结宏哥在练习过程当中遇到的各类奇葩错误和解决办法。
selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH.
去下载一个driver插件geckodriver.exe, 下载地址:https://github.com/mozilla/geckodriver/releases,下载好这个exe文件后,把这个文件放到你的python安装目录下,例如宏哥放的位置以下图:
这个有的人认为是浏览器和浏览器驱动的版本不匹配也会报这个错误。
selenium.common.exceptions.SessionNotCreatedException: Message: Unable to find a matching set of capabilities
查看selenium的版本号,下载能够兼容selenium的浏览器驱动便可;
查看浏览器的版本号,下载能够匹配的浏览器驱动便可,通常浏览器的驱动都会标明对应的浏览器版本号或者浏览器版本号的范围。
上边两个报错修改之后仍然报错。
selenium.common.exceptions.WebDriverException: Message: Expected browser binary location, but unable to find binary in default location, no 'moz:firefoxOptions.binary' capability provided, and no binary flag set on the command line
6.3.2 解决办法:
缘由是:未找到浏览器的位置,宏哥这里提供解决办法有两种,仅供参考!!!
方法一:配置火狐浏览器的环境变量,这个宏哥在这里就不作赘述了,仍是用老办法便可,看过宏哥的文章,应该知道老办法是什么,记住是老办法,不是老地方啊!!!
方法二:代码实现指引浏览器的位置
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary binary = FirefoxBinary('D:\\software\\Firefox\\firefox.exe') driver = webdriver.Firefox(firefox_binary = binary)
好了,今天的练习就到这里,但愿你们好好的练习和理解。 可是今天火狐浏览器这块可能遇到的坑比较多,能够很好地锻炼一下本身哦!!!
您的确定就是我进步的动力。若是你感受还不错,就请鼓励一下吧!记得点波 推荐 不要忘记哦!!!
原文出处:https://www.cnblogs.com/du-hong/p/11956061.html