hblovey 发表于 2016-3-26 15:37:20

学习成长记20160325 【selenium+python】


static/image/hrline/line7.png
今天学习了selenium+python的环境搭建
1.selenium相对于QTP的优点,对于现在的我来说,只是因为它开源,支持多平台,支持多浏览器,支持分布式测试。2.下载了python安装包2.7.11/setuptools/pip,然后依次安装a. exe档直接默认安装pythonb. 配置环境变量修改我的电脑->属性->高级->环境变量->系统变量中的PATH为:变量名:PATH变量值:;C:\Python27 c.setuptools-20.3.1.tar.gz文件,对文件进行解压,找到ez_install.py文件,进入windows命令提示下执行ez_install.py:C:\setuptools-20.3.1>pythonez_install.py 没有报错表示安装成功.d. 安装pip ,我默认解压在了C:\pip-8.1.1 目录下打开命令提示符(开始---cmd回车)进入C:\ pip-8.1.1目录下输入:C:\pip-1.3.1> python setup.py install3. 安装selenium连网, 直接在C:\Python27\Scripts下输入命令安装: C:\Python27\Scripts > pip install -U selenium
4.安装chromedriver将下载的exe文件放在chrome安装目录:C:\\\\\Google\Chrome\Application\ 然后设置path环境变量 设定成安装目录即可。 其他driver方法雷同。
今天第一次看第一个script:A#conding=utf-8from selenium import webdriverbrowser=webdriver.Chrome()browser.get("http:\www.baidu.com")browser.find_element_by_id("kw").send_keys("python")browser.find_element_by_id("su").click()browser.quit()重要的一个知识点就是元素的定位问题,这也是自动化测试的核心。这就像你要安排别人做事,首先要找到这个做事的人。 这个人就有很多的唯一属性(特征),如身份证 姓名 等等这里就要学习webdriver对象定位方法:idnameclass namelink textpartial link texttag namexpathcss selector举个例子:百度页面的搜索输入框<input id="kw" class="s_ipt" type="text" maxlength="100" name="wd" autocomplete="off">这样看就很清晰了。要定位一个点只需找到他的属性特征,唯一的特性就能准确识别到它。这里面的type就是tag namebrowser.find_element_by_link("新闻").click()或browser.find_element_by_partial_link_text("新").click()   这个也能定位到“新闻”的链接.这里要说等等是xpath和CSS定位,a. CSS定位是很灵活牛x的定位方式,它可以连接页面元素的任意属性,具体我还没完全弄懂 browser.find_element_css_selector("a").send_keys(Python)/browser.find_element_css_selector("kw").send_keys(Python)等等都可以定位到输入框。b. XPath定位扩展了id name的定位方式比如定位页面上的第3个复选框browser.find_element_xpath_("//input[@id='kw']").send_keys(Python)
browser.find_element_xpath_("//tr[@id='kw']/td").click()   #id为'kw'的tr,定位它里面的第2个td到这里我还没弄懂xpath真正的结构,可能需要重新去学习XML,因为这个xpath是一种XML文档中定位元素的语言。
B
添加Delay时间确保脚本运行的稳定性这里需要引入time函数import timetime.sleep(3)#休眠3秒当然也可以用智能等待时间browser.implicitly_wait(10)C打印信息去确认脚本运行位置与正确性   中间点print driver.title#把页面title打印出来D浏览器最大化 browser.maxmize_window()浏览器宽高设定 browser.set_window_size(600,800)#宽600 高800浏览器前进后退browser.get(first url) browser.get(second url)然后browser.back()/browser.forward() 就相继有作用了.是不是很有意思呀. 哈哈
上面已经讲过元素定位, 接着就是应该操作元素了,对吧!操作对象常用:click点击按钮send_keys 按键输入clear 清空submit 清空或提交text 获取文本信息例如:date=driver.find_element_by_id("cp").textprint data
今天就学习到这. 明天继续.
这里感谢 虫师, 知识点都是从他那学来的.



archonwang 发表于 2016-3-27 17:07:55

这个直接点赞啊。希望坚持下来,会有很多收获啊

hblovey 发表于 2016-3-28 08:32:45

archonwang 发表于 2016-3-27 17:07
这个直接点赞啊。希望坚持下来,会有很多收获啊

谢谢哈。嗯,一定要坚持
页: [1]
查看完整版本: 学习成长记20160325 【selenium+python】