Webdriver

 2023-09-05 阅读 107 评论 0

摘要:Webdriver概述 Webdriver (Selenium2)是一种用于Web应用程序的自动测试工具,它提供了一套友好的API,与Selenium 1(Selenium-RC)相比,Webdriver 的API更容易理解和使用,其可读性和可维护性也大大提高。Webdriver完全就是一套

Webdriver概述

Webdriver (Selenium2)是一种用于Web应用程序的自动测试工具,它提供了一套友好的API,与Selenium 1(Selenium-RC)相比,Webdriver 的API更容易理解和使用,其可读性和可维护性也大大提高。Webdriver完全就是一套类库,不依赖于任何测试框架,除了必要的浏览器驱动,不需要启动其他进程或安装其他程序,也不必像Selenium 1那样需要先启动服务。

支持浏览器

  1. Firefox (FirefoxDriver)
  2. IE(InternetExplorerDriver)
  3. Opera(OperaDriver)
  4. Chrome (ChromeDriver)
  5. safari(SafariDriver)

支持语言

  1. Java
  2. C#
  3. PHP
  4. Python
  5. Perl
  6. Ruby

安装,卸载、查看

安装:pip install selenium==XXXX(不写死就是安装最新版本)
卸载 pip uninstall selenium
查看版本号:
pip show selenium

多浏览器运行

启动Firefo

1.FireFox 48以上版本
Selenium 3.X +FireFox驱动——geckodriver

2.Firefox 48 以下版本
Selenium2.X 内置驱动
驱动下载地址https://github.com/mozilla/geckodriver/releases

启动IE浏览器

1.IE 9以上版本
Selenium3.X +IE驱动
2.IE 9以下版本
Selenium 2.X +IE驱动

启动Chrome浏览器

selenium2.x/3.x +Chrome驱动
注意!
各个驱动下载地址: http://www.seleniumhq.org/download/
浏览器位数的版本和驱动版本要一致! 如果是32bit浏览器而Driver是64bit则会导致脚本运行失败!

示例

打开页面

1.启动火狐浏览器,
2.首先打开我要自学网页面,打印网页标题,等待3秒
3.打开百度首页,打印网页标题,再等待2秒
4.关闭浏览器。

from selenium import webdriver
from time import sleep#加载浏览器驱动
driver=webdriver.Firefox()#打开自学网页面
driver.get("http://www.51zxw.net")
print(driver.title)
sleep(3)#打开百度首页
driver.get("http://www.baidu.com")
print(driver.title)
sleep(3)#关闭浏览器
driver.quit()

浏览器操作

#页面最大化
driver.maximize_window()#指定页面大小
driver.maximize_window()#刷新页面
driver.refresh()#后退
driver.back() #前进
driver.forward()#退出
driver.quit()

元素定位

#id与name 定位
driver.find_element_by_id("kw").send_keys("Selenium")
driver.find_element_by_name("wd").send_keys("Selenium")#点击
driver.find_element_by_id("su").click()

tag_name定位

#定位标签名为input的元素
driver.find_element_by_tag_name("input").send_keys("selenium")#获取页面所有标签名称为“input”的标签。
driver.find_elements_by_tag_name("input").send_keys("selenium")#获取页面所有标签名称为“input”的第一个标签。
driver.find_elements_by_tag_name("input")[0].send_keys("selenium")

class_name定位

driver.find_element_by_class_name("s_ipt").send_keys("Selenium")

link_text定位

#选择这个元素的link text
driver.find_element_by_partial_link_text('程序开发').click()#partial link text就是选择这个元素的link text中一部分字段
driver.find_element_by_partial_link_text('程序开发').click()

XPath定位

# 绝对路径定位
driver.find_element_by_xpath("/html/body/div[2]/div[1]/div/div[1]/div/form/span[1]/input").send_keys("51zxw")# 利用元素熟悉定位--定位到input标签中为kw的元素
driver.find_element_by_xpath("//input[@id='kw']").send_keys("Selenium")# 定位input标签中name属性为wd的元素
driver.find_element_by_xpath("//input[@name='wd']").send_keys("Selenium")# 定位所有标签元素中,class属性为s_ipt的元素
driver.find_element_by_xpath("//*[@class='s_ipt']").send_keys("Python3")

Xpath层级与逻辑定位

#层级和属性结合定位--自学网首页输入用户和名密码
driver.find_element_by_xpath("//form[@id='loginForm']/ul/input[1]").send_keys("51zxw")
driver.find_element_by_xpath("//form[@id='loginForm']/ul/input[2]").send_keys("66666")#逻辑运算组合定位
driver.find_element_by_xpath("//input[@class='loinp' and @name='username']").send_keys("51zxw")

Css定位

#根据id来定位
driver.find_element_by_css_selector('#kw').send_keys("Selenium")#根据class定位
driver.find_element_by_css_selector('.s_ipt').send_keys('python')#通过属性来定位
driver.find_element_by_css_selector("[autocomplete='off']").send_keys("selenium")#通过元素层级来定位
driver.find_element_by_css_selector("form#loginForm>ul>input").send_keys("51zxw")

下拉菜单元素定位——使用Select类定位

from selenium import webdriver
from  time import sleep
from selenium.webdriver.support.ui import Selectdriver=webdriver.Firefox()
driver.get("http://www.51zxw.net")
sleep(2)
#利用Select类来进行定位
select = Select(driver.find_element_by_css_selector("[name='CookieDate']"))select.select_by_index(2)
select.select_by_visible_text("留一年")
select.select_by_value("1")sleep(2)
driver.quit()

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://808629.com/110.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 86后生记录生活 Inc. 保留所有权利。

底部版权信息