selenium4.0中常见操作方式50条

前阵子升级了py3.9,一些常年陪伴的库也都做了升级,不少命令也更新了,适度更新一下记忆。

1. 打开浏览器:`driver = webdriver.Chrome()`

2. 访问网址:`driver.get("Example Domain")`

3. 获取当前网址:`driver.current_url`

4. 获取页面标题:`driver.title`

5. 获取页面源码:`driver.page_source`

6. 刷新页面:`driver.refresh()`

7. 前进:`driver.forward()`

8. 后退:`driver.back()`

9. 等待元素出现:`WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "my-element")))`

10. 等待元素可点击:`WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.ID, "my-element")))`

11. 查找元素:`driver.find_element(By.ID, "my-element")`

  • find_element_by_id(id):根据元素的 ID 来查找元素。
  • find_element_by_name(name):根据元素的 name 属性来查找元素。
  • find_element_by_xpath(xpath):根据元素的 XPath 来查找元素。
  • find_element_by_link_text(link_text):根据元素的链接文本来查找元素。
  • find_element_by_partial_link_text(partial_link_text):根据元素的链接文本的一部分来查找元素。
  • find_element_by_tag_name(tag_name):根据元素的标签名来查找元素。
  • find_element_by_class_name(class_name):根据元素的 class 属性来查找元素。
  • find_element_by_css_selector(css_selector):根据元素的 CSS 选择器来查找元素。

12. 查找多个元素:`driver.find_elements(By.CLASS_NAME, "my-element")`

13. 单击元素:`element.click()`

14. 输入文本:`element.send_keys("text")`

15. 清除文本:`element.clear()`

16. 获取元素文本:`element.text`

17. 获取元素属性:`element.get_attribute("attribute-name")`

18. 设置元素属性:`element.set_attribute("attribute-name", "value")`

19. 滚动到元素:`driver.execute_script("arguments[0].scrollIntoView();", element)`

20. 获取元素位置:`element.location`

21. 获取元素大小:`element.size`

22. 获取元素是否可见:`element.is_displayed()`

23. 获取元素是否启用:`element.is_enabled()`

24. 获取元素是否选中:`element.is_selected()`

25. 提交表单:`element.submit()`

26. 切换到新窗口:`driver.switch_to.window("window-name")`

27. 切换到新标签页:`driver.switch_to.window("tab-name")`

28. 关闭当前窗口:`driver.close()`

29. 关闭所有窗口:`driver.quit()`

30. 设置隐式等待:`driver.implicitly_wait(10)`

31. 设置显式等待:`WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "my-element")))`

32. 执行 JavaScript 代码:`driver.execute_script("script")`

33. 获取浏览器日志:`driver.get_log("browser")`

34. 获取页面截图:`driver.save_screenshot("screenshot.png")`

35. 设置超时时间:`driver.set_page_load_timeout(10)`

36. 设置脚本超时时间:`driver.set_script_timeout(10)`

37. 忽略 SSL 证书错误:`driver.service.ignore_ssl_errors = True`

38. 设置代理:`driver.service.proxy = "http://proxy.example.com:8080"`

39. 设置用户代理:`driver.execute_cdp_cmd("Network.setUserAgentOverride", {"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"})`

40. 设置窗口大小:`driver.set_window_size(1024, 768)`

41. 最大化窗口:`driver.maximize_window()`

42. 还原窗口:`driver.minimize_window()`

43. 退出浏览器:`driver.quit()`

44. 等待元素出现:`WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "my-element")))`

45. 等待元素可点击:`WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.ID, "my-element")))`

46. 等待元素消失:`WebDriverWait(driver, 10).until(EC.invisibility_of_element_located((By.ID, "my-element")))`

47. 等待元素可见:`WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.ID, "my-element")))`

48. 等待元素不可见:`WebDriverWait(driver, 10).until(EC.invisibility_of_element_located((By.ID, "my-element")))`

49. 等待元素被选中:`WebDriverWait(driver, 10).until(EC.element_to_be_selected((By.ID, "my-element")))`

50. 等待元素未被选中:`WebDriverWait(driver, 10).until(EC.element_to_be_selected((By.ID, "my-element")))`

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/606819.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【华为OD机试真题 JavaScript】小朋友来自多少小区|解题思路、代码解析

文章目录 题目描述输入输出示例1输入输出说明解题思路实现代码题目描述 幼儿园组织活动,老师布置了一个任务:每个小朋友去了解与自己同一个小区的小朋友还有几个。我们将这些数量汇总到数组garden中。 请根据这些小朋友给出的信息,计算班级小朋友至少来自几个小区? 输入 …

linux 设备模型之设备驱动

设备模型跟踪所有对系统已知的驱动. 这个跟踪的主要原因是使驱动核心能匹配驱动和新 设备. 一旦驱动在系统中是已知的对象, 但是, 许多其他的事情变得有可能. 设备驱动可 输出和任何特定设备无关的信息和配置变量, 例如: 驱动由下列结构定义: struct device_driver { char *na…

BigDecimal的性能问题

BigDecimal 是 Java 中用于精确计算的数字类,它可以处理任意精度的小数运算。由于其精确性和灵活性,BigDecimal 在某些场景下可能会带来性能问题。 BigDecimal的性能问题 BigDecimal的性能问题主要源于以下几点: 内存占用:BigDec…

ElementPlus设置中文

介绍 在Vue3项目将ElementPlus切换为中文 示例 第一步:引入中文文件 import zhCn from element-plus/dist/locale/zh-cn.mjs第二步:设置中文 app.use(ElementPlus,{locale: zhCn, })完整代码 // main.ts import { createApp } from vue import Ele…

mysql+关掉密码过期

mysql关掉密码过期 要在MySQL中关闭密码过期功能,可以按照以下步骤进行操作: 登录到MySQL服务器。 使用管理员账户(如root)连接到数据库。 mysql -uroot -ppassword 运行以下命令来查看当前的密码过期设置: SHOW…

Verdi常用参数说明

Verdi是一个用于数字信号处理的仿真和调试工具。在Verdi中,可以使用各种参数来配置仿真和调试行为。以下是一些常用的Verdi参数及其说明: 参数作用-f文件列表-ssf指定fsdb的路径-l设置仿真日志的输出级别,如"none"、“errors”、“…

金蝶EAS pdfviewlocal.jsp接口存在任意文件读取漏洞 附POC软件

免责声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该文章仅供学习用途使用。 1. 金蝶EAS简介 微信公众号搜索:南风漏洞复现文库 该…

2023十大最具商业影响力量子公司 | 光子盒年度系列

量子技术以其广泛的应用范围和对多个领域的深远影响,是当之无愧的“通用底座”技术,其潜在的产业变革力正在展现,尽管当前量子技术与人工智能或虚拟现实等技术领域相比,量子对大多数人来说还有些“看不透”。 2023年,量…

【Mars3d】new mars3d.layer.GeoJsonLayer({不规则polygon加载label不在正中间的解决方案

问题: 1.new mars3d.layer.GeoJsonLayer({type: "polygon",在styleOptions里配置label的时候,发现这个 不规则polygon加载的时候,会出现label不在中心位置。 graphicLayer new mars3d.layer.GeoJsonLayer({ name: "全国省界…

JVM的FastThrow优化机制

前言: 前一阵子,在公司排查线上问题发现:出问题的方法报空指针异常,但是没有异常堆栈信息和Message。我一开始以为是代码中做了处理,但是经过翻阅代码发现不是。最后一番查找资料,这种现象是JVM的一种优化机…

实验四:静态路由配置

实验四:静态路由配置 1. 静态路由 ( 一般配置 ) 【实验名称】静态路由配置 【实验目的】掌握静态路由的配置方法,理解路由表的作用和原理 【实验设备】路由器( 2 台)、计算机( 2 台)、交叉线&#xf…

Open3D 点云下采样抽稀(7)

Open3D 点云下采样抽稀(7) 一、算法介绍二、算法实现1.代码 一、算法介绍 点云抽稀在计算机图形学和计算机视觉中有着广泛的应用,其作用包括但不限于以下几点: 数据压缩: 点云抽稀可以有效地减少点云数据量&#xff0…

鸿蒙开发解决hvigor ERROR: Failed :entry:default@ProcessLibs...

文章目录 项目场景:问题描述原因分析:建议的解决方案总结HarmonyOSArkTS项目场景: 项目无法在真机上运行。报错 hvigor ERROR: Failed :entry:default@ProcessLibs… hvigor ERROR: 2 file found in ‘lib/arm64-v8a/libagccrypto.so’. This may cause unexpected errors …

问答领域的基本了解

问答领域是人工智能领域中的一个重要研究方向,旨在让计算机能够理解人类提出的问题,并以自然语言形式回答这些问题。问答系统可以应用于各种场景,包括搜索引擎、虚拟助手、智能客服等。 一.目标 目标: 问答系统的主要目标是使计…

为何大厂急招鸿蒙开发工程师?别有洞天

正确看待鸿蒙不再兼容安卓版本,而大厂急招鸿蒙工程师这一举动已经是预料之中的。我们一步步来看鸿蒙是怎么发展过程的。为什么互联网大厂急招鸿蒙开发岗位? 鸿蒙的发展历程 华为历经4年,从2019年开始的鸿蒙问世2.0版本到2023年末4.0宣布“不…

r语言拟合曲线

r语言拟合曲线 #圆滑曲线 library(ggalt) library(ggplot2) df <- read.csv("lqs-1.csv",headerT) p2<-ggplot(datadf,aes(xx,yy))geom_point(size1) geom_smooth(span0.1)p2结果

CTFshow web入门web128-php特性31

开启环境: 一个新的姿势&#xff0c;当php扩展目录下有php_gettext.dll时&#xff1a; _()是一个函数。 _()gettext() 是gettext()的拓展函数&#xff0c;开启text扩展get_defined_vars — 返回由所有已定义变量所组成的数组。 call_user_func — 把第一个参数作为回调函数调…

【算法练习】leetcode算法题合集之二叉树篇

递归遍历基础篇 前序遍历&#xff0c;中序遍历&#xff0c;后序遍历是根据处理根节点的位置来命名的。 树的处理大多用到了递归&#xff0c;递归需要知道终止条件。 前序遍历&#xff08;中左右&#xff09; 144.二叉树的前序遍历 中左右&#xff0c;先处理根节点&#xff0c;…

OpenGL 绘制一个三角形

在上一篇 OpenGL 顶点着色器和片段着色器的介绍实现中&#xff0c;我们向进一步绘制三角形&#xff0c;事实上只需要修改 一下两处即可 修改顶点着色器 // 顶点着色器const char* vertexShaderSource R"( #version 460 corevoid main(){// 顶点坐标vec4 vertices[3] v…

Java面试高招:程序员如何在面试中脱颖而出

Java面试高招&#xff1a;程序员如何在面试中脱颖而出 《Java面试高招&#xff1a;程序员如何在面试中脱颖而出》摘要引言面试经历面试失败的反思 面试技巧侦探式的问题解决无敌铁金刚的坚定决心 参考资料 博主 默语带您 Go to New World. ✍ 个人主页—— 默语 的博客&#x1…