Python Selenium基本用法

简介: Python Selenium基本用法

Selenium 作为一款 Web 自动化测试框架,提供了诸多操作浏览器的方法,本节对其中的常用方法做详细介绍。

定位节点

Selenium 提供了 8 种定位单个节点的方法,如下所示:

image.png

假设下面代码某个页面的代码片段,如下所示:

image.png

下面使用表格中提供的方法定位 input 输出框。如下所示:

image.png

通过 a 标签内的文本内容定位节点,如下所示: image.png

示例如下:

image.png

如果您想定位一组元素,方法如下所示:

image.png


定位一组元素的方法与定位单个元素类似,唯一的区别就是 element 后面多了一个 s(表示复数),因此上述方法的返回值是一个列表,您可以使用 for 循环拿到所有的元素节点。

控制浏览器

Selenium 可以操控浏览器的窗口大小、刷新页面,以及控制浏览器的前进、后退等

1) 设置浏览器窗口大小、位置

image.png

2) 控制网页前进、后退、刷新页面

image.png

WebDriver常用方法

上文中介绍了如何定位元素,以及如何设置浏览的大小、位置。 定位元素节点只是第一步, 定位之后还需要对这个元素进行操作, 比如单击按钮,或者在输入框输入文本 , 下面介绍 WebDriver 中的最常用方法:

image.png

示例如下:

image.png


除了上述方法外, WebDriver 还有一些常用属性,如下所示:

image.png

from selenium import webdriver driver = webdriver.Chrome()

 

获取HTML结构源码

driver.page_source #在源码中查找指定的字符串 driver.page_source.find(‘字符串’)

 

返回百度页面底部备案信息

text = driver.find_element_by_id(“cp”).text print(text)

 

获取输入框的尺寸

size = driver.find_element_by_id(‘kw’).size print(size)

image.png

{‘width’: 500, ‘height’: 22}

image.png

from selenium.webdriver.common.action_chains import ActionChains

image.png

from selenium import webdriver #导入 ActionChains 类 from selenium.webdriver.common.action_chains import ActionChains

 

driver = webdriver.Chrome() driver.get(“c.cainiao.net”)

 

通过xpath表达式定位到要悬停的元素

above = driver.find_element_by_xpath(‘//ul[@id=“ad-link-top”]/li[1]’)

 

对定位到的元素执行鼠标悬停操作

ActionChains(driver).move_to_element(above).perform()

image.png

from selenium.webdriver.common.keys import Keys

 

输入框输入内容

driver.find_element_by_id(“kw”).send_keys(“百度中文网H”)

 

删除多输入的一个H

driver.find_element_by_id(“kw”).send_keys(Keys.BACK_SPACE) #单击“百度”一下查找 driver.find_element_by_id(“su”).click() time.sleep(3) driver.quit()

image.png

输入空格键 + “Python教程”

driver.find_element_by_id(“kw”).send_keys(Keys.SPACE) driver.find_element_by_id(“kw”).send_keys(“Python教程”)

 

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’)

 

使用回车键来代替单击操作click

driver.find_element_by_id(“su”).send_keys(Keys.ENTER)

 

执行JS脚本

WebDriver 提供了 execute_script() 方法来执行 JavaScript 代码,比如控制浏览器的滚动条。示例如下:

image.png

目录
相关文章
|
1月前
|
Python
请解释Python中的递归是什么?并举例说明其用法。
【2月更文挑战第25天】【2月更文挑战第85篇】请解释Python中的递归是什么?并举例说明其用法。
|
5天前
|
前端开发 测试技术 C++
Python自动化测试面试:unittest、pytest与Selenium详解
【4月更文挑战第19天】本文聚焦Python自动化测试面试,重点讨论unittest、pytest和Selenium三大框架。unittest涉及断言、TestSuite和覆盖率报告;易错点包括测试代码冗余和异常处理。pytest涵盖fixtures、参数化测试和插件系统,要注意避免过度依赖unittest特性。Selenium的核心是WebDriver操作、等待策略和测试报告生成,强调智能等待和元素定位策略。掌握这些关键点将有助于提升面试表现。
19 0
|
13天前
|
Web App开发 测试技术 网络安全
|
18天前
|
Python
python中threads.append的用法
将线程对象`t`添加到`threads`列表便于管理与控制线程,如等待所有线程完成。通过迭代列表并调用`join`方法,可依次等待每个线程执行完毕,实现同步。代码示例: ```python for t in threads: t.join() print("All threads are done!") ``` `join`方法使当前线程阻塞,直到线程执行结束。所有线程完成后,输出"All threads are done!"。
15 1
|
1月前
|
Web App开发 前端开发 JavaScript
Python Selenium是一个强大的自动化测试工具
Python Selenium是一个强大的自动化测试工具
|
1月前
|
Python
python函数用法(五)
python函数用法(五)
24 1
|
1月前
|
Python
python函数用法(四)
python函数用法(四)
22 0
|
1月前
|
自然语言处理 Python
python函数用法(三)
python函数用法(三)
18 0
|
1月前
|
Python
python函数用法(二)
python函数用法(二)
18 0
|
1月前
|
Serverless 开发者 Python
python函数用法(一)
python函数用法(一)
15 0