python+selenium自动测试之WebDriver的常用API(基础篇一)

基于python3.6,selenium3.141,详细资料介绍查看官方API文档,点击这里

一、对浏览器操作

 1 driver = webdriver.Chrome()  # 初始化chrome
 2 driver1 = webdriver.Firefox()  # 初始化Firefox
 3 driver2 = webdriver.Ie()  # 初始化IE
 4 driver3 = webdriver.Edge()  # # 初始化Edge
 5 driver.get("https://www.baidu.com")  # 打开url
 6 driver.capabilities[‘version‘]  # 获取浏览器version
 7 driver.maximize_window()  # 将浏览器最大化显示
 8 driver.set_window_size(480, 800)  # 设置浏览器宽480、高800显示
 9 driver.back()  # 浏览器后退
10 driver.forward()  # 浏览器前进
11 driver.title  # 获取当前页面的title
12 driver.current_url  # 获取当前页面的URL
13 driver.current_window_handle  # 获取当前浏览器窗口的句柄
14 driver.close()  # 关闭浏览器,关闭当前浏览器,即最上层那个
15 driver.quit()  # 关闭webdriver打开的所有浏览器
各浏览器驱动下载地址,注意版本要对上
Chrome:http://npm.taobao.org/mirrors/chromedriver/Edge:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/Firefox:https://github.com/mozilla/geckodriver/releasesSafari:https://webkit.org/blog/6900/webdriver-support-in-safari-10/IE:http://selenium-release.storage.googleapis.com/index.html

二、页面元素定位

最好使用id,name的方式定位元素,因为一般这两个元素是全局唯一的;有时候元素不唯一,推荐使用xpath或者css定位,根据个人喜好而定,不推荐使用class

 1 # return :WebElement - the element if it was found
 2 driver.find_element(By.ID, ‘foo‘)
 3 driver.find_element_by_id("foo")
 4 driver.find_element_by_name("foo")
 5 driver.find_element_by_class_name("foo")
 6 driver.find_element_by_tag_name("h1")
 7 driver.find_element_by_link_text("Sign In")
 8 driver.find_element_by_partial_link_text("Sign")
 9 driver.find_element_by_xpath("//div/td[1]")
10 driver.find_element_by_css_selector("#foo")
 1 # return: list of WebElement - a list with elements if any was found. An empty list if not
 2 driver.find_elements(By.CLASS_NAME, ‘foo‘)
 3 driver.find_elements_by_id("foo")
 4 driver.find_elements_by_name("foo")
 5 driver.find_elements_by_class_name("foo")
 6 driver.find_elements_by_tag_name("h1")
 7 driver.find_elements_by_link_text("Sign In")
 8 driver.find_elements_by_partial_link_text("Sign")
 9 driver.find_elements_by_xpath("//div[contains(@class, ‘foo‘)]")
10 driver.find_elements_by_css_selector("#foo")

三、页面元素操作

 1 # 清除输入框的默认内容
 2 driver.find_element_by_id("foo").clear()
 3 # 输入框里输入context
 4 driver.find_element_by_id("foo").send_keys("context")
 5 # 单击一个按钮
 6 driver.find_element_by_id("foo").click()
 7 # 提交表单
 8 driver.find_element_by_id("foo").submit()
 9 # 返回元素的尺寸
10 driver.driver.find_element_by_id("foo").size
11 # 获取元素文本
12 driver.find_element_by_id("foo").text
13 # 返回元素的属性值,元素拥有的任意属性。如果是input的,可以通过获取value值获得当前输入的值
14 driver.find_element_by_id("foo").get_attribute(‘value‘)
15 # 返回元素的结果是否可见,返回结果为True或False
16 driver.find_element_by_id("foo").is_displayed()

四、鼠标事件

 1 from selenium.webdriver.common.action_chains import ActionChains
 2 # 定位鼠标元素
 3 mouse = driver.find_element_by_id("foo")
 4 # 对定位到的元素执行鼠标右键操作
 5 ActionChains(driver).context_click(mouse).perform()
 6 # 对定位到的元素执行鼠标双击操作
 7 ActionChains(driver).double_click(mouse).perform()
 8 # 对定位到的元素执行鼠标移动到上面的操作
 9 ActionChains(driver).move_to_element(mouse).perform()
10 # 对定位到的元素执行鼠标左键按下的操作,注意这里是点击下去不释放
11 ActionChains(driver).click_and_hold(mouse).perform()
12
13 # 鼠标拖放操作
14 element = driver.find_element_by_id("foo1")  # 定位元素的原位置
15 target = driver.find_element_by_id("foo2")  # 定位元素要移动到的目标位置
16 ActionChains(driver).drag_and_drop(element, target).perform()  # 执行元素的移动操作

五、键盘事件

 1 from selenium.webdriver.common.keys import Keys
 2
 3 driver.find_element_by_id("foo").send_keys(Keys.BACK_SPACE)  # 删除键(BackSpace)
 4 driver.find_element_by_id("foo").send_keys(Keys.SPACE)  # 空格键(Space)
 5 driver.find_element_by_id("foo").send_keys(Keys.TAB)  # 制表键(Tab)
 6 driver.find_element_by_id("foo").send_keys(Keys.ESCAPE)  # 回退键(Esc)
 7 driver.find_element_by_id("foo").send_keys(Keys.ENTER)  # 回车键(Enter)
 8 driver.find_element_by_id("foo").send_keys(Keys.DELETE)  # 删除键(Delete)
 9 driver.find_element_by_id("foo").send_keys(Keys.CONTROL, ‘a‘)  # 全选(Ctrl+A)
10 driver.find_element_by_id("foo").send_keys(Keys.CONTROL, ‘c‘)  # 复制(Ctrl+C)
11 driver.find_element_by_id("foo").send_keys(Keys.CONTROL, ‘x‘)  # 剪切(Ctrl+X)
12 driver.find_element_by_id("foo").send_keys(Keys.CONTROL, ‘v‘)  # 粘贴(Ctrl+V)

原文地址:https://www.cnblogs.com/andrew209/p/10088945.html

时间: 2024-08-29 18:47:39

python+selenium自动测试之WebDriver的常用API(基础篇一)的相关文章

Python + Selenium 自动发布文章(一):开源中国

https://blog.csdn.net/qq_28804275/article/details/80891949 https://blog.csdn.net/qq_28804275/article/details/80891949Python + Selenium 自动发布文章系列:Python + Selenium 自动发布文章(一):开源中国Python + Selenium 自动发布文章(二):简书Python + Selenium 自动发布文章(三):CSDNPython + Sel

python selenium系列(三)常用操作类型及方法

一 前言 开展WEB UI自动化的核心思路,无非就是找到元素,然后操作元素这两个内容.在python selenium系列(二)元素定位方式一文中,已经介绍了如何找到元素这项技能,本文将介绍第二项内容,即如何操作已经找到的元素. 二 操作方法分类 总体来说,可以将操作大体分成四类,即浏览器操作.键盘操作.鼠标操作.js脚本. 1.  浏览器常用操作方法: 方法 描述 driver.maximize_window() 窗口最大化 driver.back() 页面返回 driver.forward(

[selenium webdriver Java]常用api

1. 获取元素文本 WebElement类的getText()方法返回元素的innerText属性.所以元素里如果有子节点一样也会被返回出来.如下所示 1 public class GetText { 2 @Test 3 public void testGetText(){ 4 //启动driver,打开被测页面 5 System.setProperty("webdriver.chrome.driver", "chromedriver.exe"); 6 WebDri

Python+selenium自动循环发邮件

Python源代码如下: # coding=utf-8 from selenium import webdriver from time import sleep from random import randint def auto_throw(target_qq, username, password): """自动循环发邮件""" driver = webdriver.Chrome() driver.get("https://ma

Python+selenium自动循环扔QQ邮箱漂流瓶

Python代码如下: # coding=utf-8 from selenium import webdriver from time import sleep from random import randint def auto_throw(username, password): """自动循环扔瓶子""" driver = webdriver.Chrome() driver.get("https://mail.qq.com&qu

python selenium第一个WebDriver脚本

#coding=utf-8from selenium import webdriverimport timeimport osos.environ["webdriver.firefox.driver"]="C:\Program Files\Mozilla Firefox\firefox.exe" driver=webdriver.Firefox(executable_path='c:\\geckodriver')driver.get("http://www

python selenium自动登录百度加转窗口

大概思路: 1.定位到登录界面的名字,密码输入框 2.获取当前窗口句柄 3.打印网页title证明句柄以及装换 from selenium import webdriverimport timedriver=webdriver.Chrome()url='https://passport.baidu.com/v2/?login&tpl=mn&u=http%3A%2F%2Fwww.baidu.com%2F&sms=5'driver.get(url)driver.implicitly_w

python+selenium自动化软件测试(第14章):基础实战(1)

#coding=utf-8 from selenium import webdriven from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from selenium.webdriver.support.ui import Select from selenium.common.exceptions import NoSuchElementException im

python+selenium自动化软件测试(第16章):基础实战(3)

#coding:utf-8 from time import sleep from selenium import webdriver class cloudedge_register(object): def __init__(self,mailaddr,passwd,url): self.mailaddr = mailaddr self.passwd = passwd self.url = url self.browser = webdriver.Finefox() def register