selenium操作浏览器速查表(python3)

selenium操作速查表(python)

目录

selenium操作速查表(python)

创建浏览器对象

浏览器操作

操作cookies

隐式/显式等待

概念

隐式等待--默认的时间是0

显式等待--设定特定等待

定位dom元素

鼠标事件

键盘事件

截图弹窗操作



创建浏览器对象

功能 代码
导包 from selenium import webdriver
创建对象 driver=webdriver.Chrome()

浏览器操作

功能 代码
浏览器打开网址url driver.get(url)
浏览器最大化 driver.maximize_window()
缩放浏览器为800*480像素 driver.set_window_size(480, 800)
浏览器后退 driver.back()
浏览器前进 driver.forward()
浏览器关闭 driver.close()
浏览器退出 driver.quit()

操作cookies

功能 代码
获得所有cookie driver.get_cookies()
获得指定cookie driver.get_cookie(name)
添加cookie driver.add_cookie(dict)
删除指定cookie driver.delete_cookie(name)
删除所有cookie driver.delete_all_cookies()

隐式/显式等待

概念

网上一查selenium的等待方式有三种,解释很繁琐,其中sleep()就不解释了,是一个阻塞强制等待。

实际上隐式/显式等待很简单,前者全局适用,后者特定dom对象适用,理解起来就是这么简单,分情况使用即可。

  • 隐式等待-设定全局等待===>一个driver打开到关闭的生命周期内所有的全局等待
  • 显式等待-设定特定等待===>特定DOM元素,即html的标签对象,可以单独设定等待

隐式等待--默认的时间是0

  • 隐式等待相当于全局等待
  • browser.implicitly_wait(10)

示例代码:

browser = webdriver.Chrome()
# 等待十秒加载不出来就会抛出异常,10秒内加载出来正常返回
browser.implicitly_wait(10)
browser.get('https://www.zhihu.com/explore')
input = browser.find_element_by_class_name('class-login')
print(input)

显式等待--设定特定等待

  • 为查找特定dom元素设定等待
  • WebDriverWait(browser, 10)

示例代码:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

browser = webdriver.Chrome()
browser.get('https://www.taobao.com/')
# 等待十秒加载不出来就会抛出异常,10秒内加载出来正常返回
wait = WebDriverWait(browser, 10)
input = wait.until(EC.presence_of_element_located((By.ID, 'q')))
button = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, '.btn-search')))
print(input, button)

定位dom元素

方法Method 描述Description 参数Argument 示例Example
id 该方法通过ID的属性值去定位查找单个元素 id: 需要被查找的元素的ID find_element_by_id('search')
name 该方法通过name的属性值去定位查找单个元素 name: 需要被查找的元素的名称 find_element_by_name('q')
class name 该方法通过class的名称值去定位查找单个元素 class_name: 需要被查找的元素的类名 find_element_by_class_name('input-text')
tag_name 该方法通过tag的名称值去定位查找单个元素 tag: 需要被查找的元素的标签名称 find_element_by_tag_name('input')
link_text 该方法通过链接文字去定位查找单个元素 link_text: 需要被查找的元素的链接文字 find_element_by_link_text('Log In')
partial_link_text 该方法通过部分链接文字去定位查找单个元素 link_text: 需要被查找的元素的部分链接文字 find_element_by_partial_link_text('Long')
xpath 该方法通过XPath的值去定位查找单个元素 xpath: 需要被查找的元素的xpath find_element_by_xpath('//*[@id="xx"]/a')
css_selector 该方法通过CSS选择器去定位查找单个元素 css_selector: 需要被查找的元素的ID find_element_by_css_selector('#search')

鼠标事件

代码 动作
click() 单击
context_click() 右击
double_click() 双击
drag_and_drop() 拖拽
move_to_element() 鼠标悬停在一个元素上
click_and_hold() 按下鼠标左键在一个元素上

键盘事件

代码 描述
send_keys(Keys.BACKSPACE) 删除键(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)

截图弹窗操作

  • 截图的方法:save_screenshot(file_path)

你可能感兴趣的:(selenium,测试,自动化,python,黑盒测试)