本文目录
- 如何在python中使用selenium
- 如何运行python selenium
- 如何在python下安装selenium
- selenium python怎么封装方法
- 如何搭建Python3.4+Selenium
- python selenium 怎么初始化驱动
如何在python中使用selenium
1、下载Python2.7版本,默认运行安装即可; 2、安装完成之后,设置Python环境变量C:\Python27(操作步骤: 电脑-》属性-》高级-》环境变量-》系统变量中的PATH为:变量值: ;C:\Python27 ) 3、在python的官方网站上可以找到SetupTools的下载,解压安装安装即可; 4、当安装SetupTools之后,就可以在python安装目录下看到Script目录, 5、同样在变量中加入 path:C:\Python27\Scripts, 6、打开cmd命令行,将目录切换到C:\Python27\Scripts下,输入命令“easy_install pip“安装pip; 7、安装成功pip之后,执行pip install -U selenium 进行下载安装最新selenium的版本。
如何运行python selenium
如何运行python selenium1、下载Python2.7版本,默认运行安装即可; 2、安装完成之后,设置Python环境变量C:\Python27(操作步骤: 电脑-》属性-》高级-》环境变量-》系统变量中的PATH为:变量值: ;C:\Python27 ) 3、在python的官方网站上可以找到SetupTools的下载,解压安装安装即可; 4、当安装SetupTools之后,就可以在python安装目录下看到Script目录, 5、同样在变量中加入 path:C:\Python27\Scripts, 6、打开cmd命令行,将目录切换到C:\Python27\Scripts下,输入命令“easy_install pip“安装pip; 7、安装成功pip之后,执行pip install -U selenium 进行下载安装最新selenium的版本。
如何在python下安装selenium
不知道你是linux 还是 windows 两种通用的方法可用命令直接自动安装
如果你安装了pip 使用命令:pip install selenium
如果你安装了setuptools 使用命令:easy_install selenium
如果你两个都没装 建议你装一下 因为以后用的话会很方便 很好装的
把这个下载下来 解压之后 用命令cd到该文件夹下 运行命令:python setup.py install
不是很新的版本 你可以去官网上下载最新版本的来用
selenium python怎么封装方法
一、常用函数的封装
在使用selenium做web自动化测试的过程中,经常会碰到各种各样的问题,比如:
1、页面加载比较慢时,selenium查找元素抛出异常,导致脚本运行中止
2、写完脚本后发现代码逻辑不够清晰,维护困难,降低测试效率
所以很有必要对selenium进行封装使框架更适合公司的需求,下面是基类的封装,主要使用单例模式,可以将业务逻辑代码存放在不同的Python文件中
注:BASE_URL为博客园的登录地址
1 # -*- coding:utf-8 -*- 2 from selenium import webdriver 3 import time 4 5 OVER_TIME = 5 6 BASE_URL = “nblogs.com/user/signin?ReturnUrl=hFwww.cnblogs.com%2F“ 7 8 9 class Driver(object): 10 11 def __new__(cls, *args, **kw): 12 “““ 13 使用单例模式将类设置为运行时只有一个实例,在其他Python类中使用基类时, 14 可以创建多个对象,保证所有的对象都是基于一个浏览器 15 “““ 16 if not hasattr(cls, ’_instance’): 17 orig = super(Driver, cls) 18 cls._instance = orig.__new__(cls, *args, **kw) 19 return cls._instance 20 21 def start(self, url=BASE_URL, driver_name=“Chrome“): 22 “““ 23 启动浏览器 24 :param url: 测试地址 25 :param driver_name: 在启动时设置浏览器的类型 26 :return: 27 “““ 28 if driver_name == “Firefox“: 29 self.driver = webdriver.Firefox() 30 elif driver_name == “Ie“: 31 self.driver = webdriver.Ie() 32 else: 33 self.driver = webdriver.Chrome() 34 self.driver.implicitly_wait(OVER_TIME) 35 self.driver.get(url) 36 self.driver.maximize_window() 37 38 def get_url(self): 39 “““返回浏览器的地址“““ 40 return BASE_URL 41 42 def find_element(self, by, value): 43 “““ 44 这里添加了一个OVER_TIME作为查找元素的超时次数,根据系统的实际情况设置OVER_TIME的大小 45 “““ 46 for i in range(OVER_TIME): 47 try: 48 return self.driver.find_element(by=by, value=value) 49 except Exception, e: 50 print e 51 52 def find_elements(self, by, value): 53 “““与find_element一致“““ 54 for i in range(OVER_TIME): 55 try: 56 return self.driver.find_elements(by=by, value=value) 57 except Exception, e: 58 print e 59 60 def find_display_elements(self, by, value): 61 “““ 62 查找状态为displayed的元素集合,当查找一类元素时, 63 经常出现有些元素是不可见的情况,此函数屏蔽那些不可见的元素 64 “““ 65 for i in range(OVER_TIME): 66 try: 67 elements = self.driver.find_elements(by=by, value=value) 68 num = elements.__len__() 69 except Exception, e: 70 print e 71 time.sleep(1) 72 if num 》= 1: 73 break 74 display_element = 75 # 将可见的元素放到列表中, 并返回 76 for j in range(num): 77 element = elements.__getitem__(j) 78 if element.is_displayed(): 79 display_element.append(element) 80 return display_element 81 82 def is_element_present(self, By, Value): 83 “““判断元素是否存在“““ 84 try: 85 self.driver.find_element(by=By, value=Value) 86 return True 87 except Exception, e: 88 print e 89 return False 90 91 def close(self): 92 self.driver.close() 93 94 def quit(self): 95 u“““退出浏览器“““ 96 self.driver.quit() 97 98 if __name__ == “__main__“: 99 page = Driver()100 page.start()
二、使用封装过的框架和pageobject模式设计登录脚本
1 # -*- coding:utf-8 -*- 2 from webdriver import Driver 3 from selenium.webdriver.common.by import By 4 5 6 class Login(object): 7 8 def __init__(self, user_name=“xxx“, pwd=“xxx“): 9 self.page = Driver()10 page = self.page11 page.start(url=page.get_url())12 self.user_name = page.find_element(By.ID, “input1“)13 self.pwd = page.find_element(By.ID, “input2“)14 self.login_btn = page.find_element(By.ID, “signin“)15 self.login(user_name, pwd)16 17 def login(self, user_name, pwd):18 self.user_name.clear()19 self.user_name.send_keys(user_name)20 self.pwd.clear()21 self.pwd.send_keys(pwd)22 self.login_btn.click()23 24 25 if __name__ == “__main__“:26 Login(“xxx“, “xxx“)
三、打开博客园新闻、博问等子页面脚本设计
1 # -*- coding:utf-8 -*- 2 from webdriver import Driver 3 from login import Login 4 from selenium.webdriver.common.by import By 5 6 7 class SubPage(object): 8 9 def __init__(self):10 self.page = Driver()11 page = self.page12 self.home_page = page.find_element(By.LINK_TEXT, u“园子“)13 self.news_page = page.find_element(By.LINK_TEXT, u“新闻“)14 self.q_page = page.find_element(By.LINK_TEXT, u“博问“)15 self.ing_page = page.find_element(By.LINK_TEXT, u“闪存“)16 17 def open_home_page(self):18 self.home_page.click()19 20 def open_news_page(self):21 self.news_page.click()22 23 def open_q_page(self):24 self.q_page.click()25 26 def open_ing_page(self):27 self.ing_page.click()28 29 30 if __name__ == ’__main__’:31 Login(“xxx“, “xxx“)32 sub = SubPage()33 sub.open_q_page()
四、其他
按照此模式博友可根据公司具体的业务来实现自动化测试脚本,本文抛砖引玉,如有其他更好的想法可以一起探讨
如何搭建Python3.4+Selenium
System OS:Win7 (64位) Python3.4(32位) Chrome详细步骤: 1.下载32位的python3.4 ,安装,注意在安装过程中,选择pip2.添加系统环境变量 C:\Python34;C:\Python34\Scripts;C:\Program Files\Google\Chrome\Application(后面会用到)3.使用pip命令,安装selenium cd Python34 然后输入: pip install -U selenium 安装成功后,显示: Runing setup.py install foe selenium Successfully installed selenium-2.48.04.检测selenium是否安装成功。 在Python的IDLE中,输入: from selenium import webdriver 如果没有报错,则selenium安装成功。5.开始第一个程序 from selenium import webdriver driver = webdriver.Chrome() driver.get(““) driver.find_element_by_id(“kw”).send_keys(“自动化测试”)按F5运行,然后会自动打开百度网页。能够顺利安装,那是幸运的,但是更多时候,总因为各种原因导致安装过程不太顺利。下面将安装过程中遇到的问题,总结在此: issue 1: 使用pip 命令安装结束后,加载selenium模块报错。 from selenium import webdriver 报错: File “pyshell#0”, line 1, in import selenium File “C:\Python34\selenium.py”, line 1, in from selenium import webdriver ImportError: cannot import name ‘webdriver’ Traceback (most recent call last): File “pyshell#0”, line 1, in import selenium File “C:\Python34\selenium.py”, line 1, in from selenium import webdriver 百度了很多方法,仍无解。 解决方法: 最后换了版本,将64位python3.4 改为32位的python3.4 再次重新安装,成功。issue 2: 使用browser=webdriver.Chorme() 报错。 报错: Error message: “’chromedriver’ executable needs to be available in the path” 这是因为缺少驱动:Chromedriver.exe 下载Chormedriver.exe 注意安装Chromedriver.exe要与PC所安装的Chrome版本匹配。 解决方法:下载安装ChromeDrvier.exe 将ChromeDrvier.exe 放到C:\Python34\Scripts\OVER
python selenium 怎么初始化驱动
ChromeDriver切换浏览器语言ChromeOptions options = new ChromeOptions();options.addArguments(“--lang=“ + “zh-CN“);WebDriver driver = new ChromeDriver(options);ChromeDriver设置启动chrome为默认用户的配置信息(包括书签、扩展程序、代理设置等), 运行程序前需关闭win7系统中采用默认配置打开的浏览器chrome// Windows下《br》ChromeOptions options = new ChromeOptions();options.addArguments(“user-data-dir=C:/Users/user_name/AppData/Local/Google/Chrome/User Data“);WebDriver driver = new ChromeDriver(options);ChromeDriver设置忽略 Chrome 浏览器证书错误报警提示ChromeOptions options = new ChromeOptions();options.addArguments(“--test-type“, “--ignore-certificate-errors“); WebDriver driver = new ChromeDriver(options);ChromeDriver设置Chrome参数使浏览器最大化并且默认不检查浏览器ChromeOptions options = new ChromeOptions();DesiredCapabilities capabilities = DesiredCapabilities.chrome();capabilities.setCapability(“chrome.switches“, Arrays.asList(“--start-maximized“));options.addArguments(“--test-type“, “--start-maximized“,“no-default-browser-check“); //意思好像是测试模式,最大化浏览器并且默认不检查浏览器WebDriver driver = new ChromeDriver(options);selenium打开带有扩展的chrome每当用跑用例失败的时候,第一反应就是查看元素定位是不是正确,帮助定位的扩展是必不可少的,但是selenium一般打开的是不带扩展的干净的浏览器,如果操作步骤很长的话,就得手动去执行直到那一步去检查元素,很费时,那怎么样让它打开的是带有扩展的浏览器呢,firefox简单,很多教程一搜照做即可,但chrome我搜索了一个小时都未见到···现在自己想办法解决了,记录下来供以后查阅。首先进入C:\Users(用户)\你的电脑名称\AppData\Local\Google\Chrome\User Data\Default\Extensions,点开Extensions,里面的文件夹就是安装过的扩展,(记得先把电脑隐藏文件夹显示出来,否则找不到) 但是名字是一堆我看不懂的无序的英文字母,我的办法是一个一个点开找到对应的插件版本号,版本号在chrome Extensions选项里找然后打包你需要的插件:打开chrome的设置,在里面点开扩展程序,选中开发者模式,你安装的插件的下面会出现一个ID,这个ID对应的就是你要打包的插件,然后打包扩展程序,找到对应的文件夹(或者你也可以把这个文件夹复制到电脑任意地方)下面的版本号的文件夹,也就是ID名文件夹内部的那个文件夹,然后点击打包扩展程序,就可以了,会相应的在版本号的同一级地方出现后缀名是crx和pem的文件,这个crx的文件就是我们需要的。准备工作完成,看代码:ChromeOptions options = new ChromeOptions();options.addExtensions(new File(“C:\\Users\\swang\\AppData\\Local\\Google\\Chrome\\UserData\\Default\\Extensions\\ijaobnmmgonppmablhldddpfmgpklbfh\\1.6.0_0.crx“));//添加扩展的方法,将crx文件所在的路径添加进去WebDriver driver=new ChromeDriver(options);