python+Selenium——web自动化(浏览器对象及页面元素常用操作)

本文详细介绍了使用Python+Selenium进行Web自动化测试的各种操作,包括等待时间设置、多表单切换、窗口操作、选择框操作、弹出对话框处理、截图、Cookie管理和滚动条控制。内容覆盖了WebDriverWait、implicitly_wait、强制等待、frame和iframe切换、选择框的单选、复选和下拉框操作、鼠标悬停、Alert、Confirm和Prompt的处理、以及页面截图和Cookie的增删查改等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

等待时间

多表单切换frame(iframe)切换

窗口切换

选择框操作

radio选择框

checkbox选择框

Select选择框

鼠标悬停

弹出对话框

Alert弹出框

Confirm弹出框

Prompt弹出框

截图

Cookie操作

滚动条


等待时间

在web中因为代码执行速度很快,但由于服务器请求需要时间和网络延迟等原因,在代码执行时,还未能等待页面元素出现就开始执行,这样会使操作不能找到元素使执行失败报错,定位元素的方法为find_element 时抛出异常,定位元素方法为find_elements时,返回空列表,这时可以通过设置等待时间来解决。由于具体的等待时长不好掌握,所以需要设置显示或隐式等待时长来解决。

显示等待WebDriverWait()

设置显示等待需要导入方法

from selenium.webdriver.support.ui import WebDriverWait

方法参数介绍

class WebDriverWait(object):
    def __init__(self, driver, timeout, poll_frequency=POLL_FREQUENCY, ignored_exceptions=None):
        '''
        :param driver: 传入WebDriver实例
        :param timeout:超时时间,等待的最长时间(同时要考虑隐性等待时间)
        :param poll_frequency:调用until中的方法的间隔时间,默认是0.5秒
        :param ignored_exceptions:忽略的异常,如果在调用until的过程中抛出这个元组中的异常,则不中断代码,继续等待
        '''

隐式等待是对指定元素使用的,在使用的时候通过使用WebDriverWait对象的.until方法来指定需要等待加载的对象,until方法中的参数如下

def until(self, method, message=''):
    # method:可执行方法
    # message='':超时时返回的信息,可以做断言使用

可以用来检查页面元素是否存在或者是否符合预期

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

element = (By.ID,'uesrname')  # 等待加载成功后的元素作为预期条件
WebDriverWait(driver=wd,timeout=10, poll_frequency=0.5).until(EC.presence_of_element_located(element),message="未找到元素")
user = wd.find_element_by_id('username')  # 在上面的等待时间范围内等待加载元素出现的时候执行

expected_conditions条件提供了更多的判断方法

ActionChains提供的方法

作用

title_is title_contains

这两个条件类验证title,验证传入的参数title是否等于或包含于driver

presence_of_element_located presence_of_all_elements_located

这两个条件验证元素是否出现,传入的参数都是元组类型的locator,如(By.ID, 'kw')顾名思义,一个只要一个符合条件的元素加载出来就通过;另一个必须所有符合条件的元素都加载出来才行

visibility_of_element_located invisibility_of_element_located visibility_of

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值