LOVE TV avatar

Python+Selenium+Chromedriver 自动化测试(上)

lovetv

Published: 07 May 2019 › Updated: 07 May 2019Python+Selenium+Chromedriver 自动化测试(上)

Python+Selenium+Chromedriver 自动化测试(上)

---恢复内容开始---主要来写一些Selenium函数的使用方法

# 导入webdriver方法,用来调用浏览器,需要自行下载好相应的驱动
from selenium import webdriver

# 执行便会启动浏览器
driver = webdriver.Chrome()

# 获取一个网页页面
driver.get("http://m.baidu.com")

# 参数数字为像素点,设置浏览器页面大小
print("设置浏览器宽480、高800显示")
driver.set_window_size(480, 800)

# 浏览器的前进和后退
driver.forward()
driver.back()

# 刷新
driver.refresh()

#退出浏览器
driver.quit()

上面的都是基础操作,下面来看一些常用方法

# 首先得需要有一些基本定位的概念,定位后在对这些元素进行操作
# clear()        清除文本    
# send_keys()    写文本信息
# click()        单击。若元素不能单击也不会报错
# submit()       提交表单,类似回车方法
#            


from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://www.baidu.com")

# 先定位搜索框,然后将搜索框中的内容清空
driver.find_element_by_id("kw").clear()

# 先定位搜索框,然后再搜索框中输入"selenium"
driver.find_element_by_id("kw").send_keys("selenium")

# 先定位搜索按钮,然后点击搜索。接着就会看到搜索后的内容
driver.find_element_by_id("su").click()

driver.back()

driver.find_element_by_id("kw").send_keys("selenium")

# submit定位搜索按钮和搜索框都可以成功执行
# driver.find_element_by_id("su").submit()
driver.find_element_by_id("kw").submit()

driver.quit()

其他方法

#size 返回元素的尺寸
#text 获取元素的文本
#get_attribute(name) 获得属性值
#is_displayed() 设置该元素是否用户可见

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("http://www.baidu.com")

# 获得输入框的尺寸
size = driver.find_element_by_id('kw').size
print(size)

# 返回百度页面底部备案信息
text = driver.find_element_by_id("cp").text
print(text)

# 返回元素的属性值, 可以是 id、 name、 type 或其他任意属性
attribute = driver.find_element_by_id("kw").get_attribute('type')
print(attribute)

# 返回元素的结果是否可见, 返回结果为 True 或 False
result = driver.find_element_by_id("kw").is_displayed()
print(result)

driver.quit()

鼠标操作

# 在 WebDriver 中, 将这些关于鼠标操作的方法封装在 ActionChains 类提供
# ActionChains 类提供了鼠标操作的常用方法
# perform()         执行所有 ActionChains 中存储的行为
# context_click()   右击
# double_click()    双击
# drag_and_drop()   拖动
# move_to_element() 鼠标悬停

from selenium import webdriver

# 导入提供鼠标操作的 ActionChains 类。
from selenium.webdriver.common.action_chains import ActionChains
# from selenium.webdriver import ActionChains

driver = webdriver.Chrome()
driver.get("https://www.baidu.cn")

# 定位到要悬停的元素
above = driver.find_element_by_link_text("设置")

# 对定位到的元素执行鼠标悬停操作
ActionChains(driver).move_to_element(above).perform()
# 导入提供鼠标操作的 ActionChains 类
from selenium.webdriver import ActionChains

# 调用 ActionChains()类, 将浏览器驱动 driver 作为参数传入
ActionChains(driver)

# context_click()方法用于模拟鼠标右键操作, 在调用时需要指定元素定位
move_to_element(above)

# 执行所有 ActionChains 中存储的行为, 可以理解成是对整个操作的提交动作
perform()

鼠标常见操作

# click(on_element=None) 
# 单击鼠标左键
#
# click_and_hold(on_element=None)
# 点击鼠标左键,不松开
#
# context_click(on_element=None)
# 点击鼠标右键
#
# double_click(on_element=None)
# 双击鼠标左键
#
# drag_and_drop(source, target)
# 拖拽到某个元素然后松开
#
# drag_and_drop_by_offset(source, xoffset, yoffset)
# 拖拽到某个坐标然后松开
#
# key_down(value, element=None)
# 按下某个键盘上的键
#
# key_up(value, element=None)
# 松开某个键
#
# move_by_offset(xoffset, yoffset)
# 鼠标从当前位置移动到某个坐标
#
# move_to_element(to_element)
# 鼠标移动到某个元素
#
# move_to_element_with_offset(to_element, xoffset, yoffset)
# 移动到距某个元素(左上角坐标)多少距离的位置
#
# perform()
# 执行链中的所有动作
#
# release(on_element=None)
# 在某个元素位置松开鼠标左键
#
# send_keys(*keys_to_send)
# 发送某个键到当前焦点的元素
#
# send_keys_to_element(element, *keys_to_send)
# 发送某个键到指定元素

键盘操作

# Keys()类提供了键盘上几乎所有按键的方法,甚至是组合键,如 Ctrl+A、 Ctrl+C 等。

from selenium import webdriver

# 引入 Keys 模块
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome()
driver.get("http://www.baidu.com")

# 输入框输入内容
driver.find_element_by_id("kw").send_keys("seleniumm")

# 删除多输入的一个 m
driver.find_element_by_id("kw").send_keys(Keys.BACK_SPACE)

# 输入空格键+“教程
driver.find_element_by_id("kw").send_keys(Keys.SPACE)
driver.find_element_by_id("kw").send_keys("教程")

# ctrl+a 全选输入框内容
driver.find_element_by_id("kw").send_keys(Keys.CONTROL, 'a')

# ctrl+x 剪切输入框内容
driver.find_element_by_id("kw").send_keys(Keys.CONTROL, 'x')

# ctrl+v 粘贴内容到输入框
driver.find_element_by_id("kw").send_keys(Keys.CONTROL, 'v')

# 通过回车键来代替单击操作
driver.find_element_by_id("su").send_keys(Keys.ENTER)

driver.quit()

键盘常见操作

# send_keys(Keys.BACK_SPACE)
# 删除键(BackSpace)
#
# send_keys(Keys.SPACE)
# 空格键(Space)
#
# send_keys(Keys.TAB)
# 制表键(Tab)
#
# send_keys(Keys.ESCAPE)
# 回退键(Esc)
#
# send_keys(Keys.ENTER)
# 回车键(Enter)
#
# send_keys(Keys.CONTROL,‘a’)
# 全选(Ctrl+A)
#
# send_keys(Keys.CONTROL,‘c’)
# 复制(Ctrl+C)
#
# send_keys(Keys.CONTROL,‘x’)
# 剪切(Ctrl+X)
#
# send_keys(Keys.CONTROL,‘v’)
# 粘贴(Ctrl+V)
#
# send_keys(Keys.F1)
# 键盘 F1
# ……
# send_keys(Keys.F12)
# 键盘 F12

Leave Python+Selenium+Chromedriver 自动化测试(上) to:

Written by

Read more #cn posts


Best Posts From LOVE TV

We have not curated any of lovetv's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.

More Posts From LOVE TV