构建Python+Selenium2自动化测试环境完成之后,就需要测试支持python的selenium的版本是否都支持在不同浏览器上运行,当前我们分别在三个最通用的浏览器上通过脚本来测试。
1、在IE浏览器上运行测试脚本,首先需要下载IEDriverServer.exe,放在IE浏览器的安装目录且同级目录下,脚本如下:
import os
from selenium import webdriver
from selenium.webdriver.common.keys import Keys iedriver="C:Program FilesInternet ExplorerIEDriverServer.exe"os.environ["webdriver.ie.driver"] =iedriver driver=webdriver.Ie(iedriver) driver.get("http://www.python.org")assert"Python"indriver.title elem= driver.find_element_by_name("q") elem.send_keys("selenium") elem.send_keys(Keys.RETURN)assert"Google"indriver.title driver.close() driver.quit()
2、在Chrome浏览器上运行测试脚本,首先需要下载ChromeDriver.exe,放在Chrome浏览器的安装目录且同级目录下,脚本如下:
import os
from selenium import webdriver
from selenium.webdriver.common.keys importKeys chromedriver="C:Program Files (x86)GoogleChromeApplicationchromedriver.exe"os.environ["webdriver.chrome.driver"] =chromedriver driver=webdriver.Chrome(chromedriver) driver.get("http://www.python.org")assert"Python"indriver.title elem= driver.find_element_by_name("q") elem.send_keys("selenium") elem.send_keys(Keys.RETURN)assert"Google"indriver.title driver.close() driver.quit()
3、在Firefox浏览器上运行测试脚本,具体如下:
from selenium import webdriver
from selenium.webdriver.common.keys importKeys driver=webdriver.Firefox() driver.get("http://www.python.org")assert"Python"indriver.title elem= driver.find_element_by_name("q") elem.send_keys("selenium") elem.send_keys(Keys.RETURN)assert"Google"indriver.title driver.close() driver.quit()
总结:通过以上三个不同浏览器上的测试,说明selenium在python中的运用于其Java版本都是一样。由于Firefox是默认安装路径,webdriver可以正常访问找到他,如果非系统默认安装路径,则需要跟IE和Chrome一样来设置driver路径。实际上直接把driver驱动放到对应浏览器的默认安装路径下,然后设置PATH到该路径,即可成功启动,但是要注意调用时的大小写问题,比如webdriver.Ie(),绝对不能写成webdriver.ie(),否则会报错:module is not callable.
安装后调用报错:selenium.common.exceptions.WebDriverException: Message: 'chromedriver.exe' execu table needs to be in PATH.,实际上已经将该driver的路径加到系统环境变量Path中了。
这个问题有两种解决方式,如果第一种不行,再试下第二种:
1、将chromedriver.exe放到python的安装路径下:C:Python27,然后再调用
2、进入C:Python27Libsite-packagesseleniumwebdriverchrome路径下,打开webdriver.py文件,将第33行代码中的executable_path="chromedriver"替换为chromedriver实际所在路径。
以上两种方式都亲测可行~