webDriver
webDriver概念:Webdriver是一种用于Web应用程序的自动测试工具,它提供了一套友好的API,与 selenium -RC相比,Web driver 的API更容易理解和使用,其可读性和可维护性也大大提高。Webdriver完全就是一套类库,不依赖于任何测试框架,除了必要的浏览器驱动,不需要启动其他进程或安装其他程序。webDriver支持的浏览器包括Firefox、IE、Opera、Chrome 、safari。webDriver支持的编程语言包括:java、C#、PHP、 Python 、Perl、Ruby
selenium的安装(前提是安装好Python)
安装selenium的相关操作:
打开dos控制台:输入 pip install selenium命令,回车等它安装好就可以
查看selenium版本号命令:pip show selenium
卸载selenium库命令:pip uninstall selenium
安装好selenium后需要下载相应浏览器的驱动程序,下载好驱动后,不需要安装,解压后添加环境变量即可使用
附selenium相关内容的下载链接(包括驱动和selenium):
注意:浏览器位数的版本和驱动版本要一致! 如果是32bit浏览器而Driver是64bit则会导致脚本运行失败!
第一个自动化脚本
实现如下操作:启动IE浏览器,打开百度首页,关闭浏览器
代码如下:
浏览器相关操作
窗口最大化
窗口最小化
driver.minimize_window()
设置浏览器窗口大小
driver.set_window_size(width, height)
页面的前进
driver. forward ()
页面的后退
driver.back()
页面刷新
driver.refresh()
元素的定位(自动化的核心之一)
使用id定位
driver.find_element_by_id(‘kw’)
使用name定位
driver.find_element_by_name(‘kw’)
使用tag_name定位
driver.find_element_by_tag_name(‘input’)
假设有多个input标签,我们可以通过索引来定位到我们想要的标签如下:driver.find_element_by_tag_name(‘input’)[0]
使用class_name定位
driver.find_element_by_class_name(‘search_btn’)
这里补一下findElements和findElement的不同:findElements是查找页面上所有符合条件的元素,返回的是一个列表list,不能直接点击,findElement才是准确定位到指定元素,才能进行点击操作
使用link_text(超链接文字)定位
定位超链接文字全部文字内容:driver.find_element_by_link_text(‘程序开发’)
定位超链接文字部分内容:driver.find_element_by_partial_link_text(‘程序’)
使用Xpath定位
方式一:绝对定位不推荐使用(脚本不好维护)
driver.find_element_by_xpath(‘/html/body/div[2]/div[1]/form]/input[@id=”su”]’)
方式二:相对定位
driver.find_element_by_xpath(‘//*[@id=”form”]’)
相对路劲相关解释://表示当前页面;*表示任意标签,你也可以指定标签;@后为属性
使用CSS定位(推荐使用CSS定位,不推荐使用Xpath定位)
driver.find_element_by_css_selector(css_selector)
#值:通过id定位
.class:通过class定位
[属性=’值’]:通过属性定位
层级>层级:通过层级定位
下拉菜单元素定位(利用select类来进行定位)
select=select(driver.find_element_by_css_selector(“[name=’CookieData’]”))
select.select_by_index(0)#通过索引定位
select.select_by_visible__text(“留一年”)#通过选项文字定位
select.select_by_value(‘1’)#通过value值来定位
frame嵌套页面元素定位(嵌套页面就是在网页中又嵌套了一个子网页)
driver.switch_to.frame(‘search’)