selenium的11种基础操作(元素的定位、操作,浏览器的打开、管理、处理、代理、加载,键盘操作)

selenium的11种基础操作(定位和操作元素,浏览器的打开、管理、处理、代理)

Selenium操作学习笔记

** 使用selenium自动化测试工具,模拟人为操作浏览器,达到可以注册/登录网页,滑动下拉框,选择,鼠标点击等操作。
学习背景: windows系统,python语言,PyCharm
学习资源: https://www.selenium.dev/documentation/en/

1. 定位元素

是最重要的学习内容之一,学习如何定位到网页中的元素

1.1 定位单一元素
driver.find_element(By.ID, "cheese")

tips:driver是WebDriver的实例对象

一旦通过ID定位到了cheese,可以在上一步结果的基础上进一步缩小范围

cheese = driver.find_element(By.ID, "cheese")
cheddar = cheese.find_elements_by_id("cheddar")

同时,也可以使用另一种方法实现

cheddar = driver.find_element_by_css_selector("#cheese #cheddar")
1.2 定位多个元素

网页结构如下

<ol id=cheese>
 <li id=cheddar><li id=brie><li id=rochefort><li id=camembert></ul>

定位cheese下的所有元素

mucho_cheese = driver.find_elements_by_css_selector("#cheese li")
1.3 元素选择策略

WebDriver有八个内置的元素选择方法

定位法 使用描述
class name 寻找包含查找值的class name元素(不包括复合class name)
css selector 用css法定位元素
id 依据id属性值定位元素
name 依据name属性值定位元素
link text 定位其可视文本与搜索值匹配的锚元素
partial link text 定位其可视文本包含搜索值的第一个锚元素
tag name 定位tag name与搜索值匹配的元素
xpath 查找与xpaht表达式匹配的元素
1.4 其他定位法

在定位到想要的元素后,可以使用以下方法定位到相邻的元素

方法 作用
above() 定位到现元素上面的元素
below() 定位到现元素下面的元素
toLeftOf() 定位到现元素左面的元素
tpRightOf() 定位到现元素右面的元素
near() 定位到最多距现元素50个像素远的元素

2. 动作操作

2.1 定位并输入文本
name = "Charles"
driver.find_element(By.NAME, "name").send_keys(name) 
2.2 拖放功能
source = driver.find_element(By.ID, "source")
target = driver.find_element(By.ID, "target")
ActionChains(driver).drag_and_drop(source, target).perform()
2.3 点击元素
driver.find_element(By.CSS_SELECTOR, "input[type='submit']").click()

3. 实例化WebDriver

from selenium.webdriver import Chrome

driver = Chrome()

from selenium.webdriver import Chrome

with Chrome() as driver:
    #your code inside this indent

4. 浏览器操作

4.1 打开网页
driver.get("https://selenium.dev") 
4.2 获取当前网址

从浏览器的地址栏读取当前的URL

driver.current_url
4.3 按下浏览器的后退按钮
driver.back()
4.4 按下浏览器的前进按钮
driver.forward()
4.5 刷新当前网页
driver.refresh()
4.6 从浏览器中读取当前页面标题
driver.title
4.7 当打开一个新窗口时,获取该窗口的处理权
driver.current_window_handle
4.8 当点击一个链接跳转到新窗口时,需要switch到新窗口
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# Start the driver
with webdriver.Chrome() as driver:
    # Open URL
    driver.get("https://seleniumhq.github.io")

    # Setup wait for later
    wait = WebDriverWait(driver, 10)

    # Store the ID of the original window
    original_window = driver.current_window_handle

    # Check we don't have other windows open already
    assert len(driver.window_handles) == 1

    # Click the link which opens in a new window
    driver.find_element(By.LINK_TEXT, "new window").click()

    # Wait for the new window or tab
    wait.until(EC.number_of_windows_to_be(2))

    # Loop through until we find a new window handle
    for window_handle in driver.window_handles:
        if window_han
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ALittleHigh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值