【WEB自动化面试02--学习过程的问题及解决】

news2024/10/4 14:24:56

day01

1、报错获取不到浏览器二进制文件:需要指定浏览器路径及驱动路径。

第一次使用谷歌浏览器驱动,找不到二进制文件

报错:
selenium.common.exceptions.WebDriverException: Message: unknown error: cannot find Chrome binary
Stacktrace:

原因:没有把谷歌浏览器安装在默认的地方

这个错误信息表明在尝试初始化webdriver.Chrome()时,Selenium无法找到Chrome浏览器的二进制文件。错误信息为:“unknown error: cannot find Chrome binary”。这通常发生在以下几种情况:

Chrome未安装:确保Google Chrome浏览器已经安装在你的系统上,并且安装在默认路径。对于Windows系统,Chrome通常安装在C:\Program Files (x86)\Google\Chrome\Application\chrome.exe或者C:\Program Files\Google\Chrome\Application\chrome.exe。

安装路径非标准:如果Chrome安装在非标准路径,Selenium可能无法自动找到它。在这种情况下,你需要在Selenium的ChromeOptions中手动指定Chrome的位置。

环境变量问题:确保系统的环境变量中包含了Chrome的路径,这样Selenium就能找到Chrome的二进制文件。

针对这个问题,如果Chrome已经安装但Selenium仍然报错,你可以通过以下方式手动指定Chrome的路径:

 指定路径的代码:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options

chrome_driver_path = "D:/path/to/chromedriver.exe"  # Chrome Driver的路径
chrome_binary_path = "C:/Program Files/Google/Chrome/Application/chrome.exe"  # Chrome浏览器的路径,根据实际安装位置调整

options = Options()
options.binary_location = chrome_binary_path
service = Service(executable_path=chrome_driver_path)

driver = webdriver.Chrome(service=service, options=options)

请确保将chrome_driver_pathchrome_binary_path替换为你系统上实际的路径。这样,Selenium就能正确地找到并使用Chrome浏览器了。

2、selenium的原理

地址:了解组件 | Selenium

3、更新pip的指令

python -m pip install --upgrade pip -i https://mirrors.aliyun.com/pypi/simple/

day02

1、会手写Xpath--只用相对路径

 1)通过唯一标识的方式

不管是什么元素类型,使用通配符*

el = driver.find_element(By.XPATH,"//*[@ID='topBooks2']")

 

 在确定元素类型的情况下,使用元素类型 dl 去匹配元素

el = driver.find_element(By.XPATH,"//dl[@ID='topBooks2']")

2)以。。开头--模糊查询

el = driver.find_element(By.XPATH,'//a[starts-with(text(),"神医毒妃")]')

3)包含

el = driver.find_element(By.XPATH,'//a[contains(text(),"神医毒妃")]')

4)苏雪梅

要编写XPath来定位包含“苏雪梅”的元素

1. **直接定位包含文本的`<a>`标签**:
   
   //td[@class='name']/a[contains(text(),'苏雪梅')]

   这个XPath查找类名为`name`的`<td>`标签下的`<a>`标签,其中包含文本“苏雪梅”。


2. **使用文本定位整个`<td>`标签**:
   
   //td[contains(.,'苏雪梅')]
   
   这个XPath查找任何包含“苏雪梅”文本的`<td>`标签。点(`.`)表示当前节点,所以`contains(.,'苏雪梅')`是查找当前节点及其子节点中包含指定文本的情况。


3. **基于特定父标签的ID定位**:
   
   //tbody[@id='newRankBooks2']//a[contains(text(),'苏雪梅')]
   ```
   如果页面上有多个元素包含“苏雪梅”且你只对特定区域(例如ID为`newRankBooks2`的`<tbody>`内的元素)感兴趣,这个XPath会更加精确。


4. **考虑使用兄弟节点定位**:
   如果你想基于与目标元素相邻的其他元素(例如作者名“张莹”)来定位“苏雪梅”,可以使用如下XPath:
  
   //td[a[contains(text(),'张莹')]]/preceding-sibling::td[@class='name']/a[contains(text(),'苏雪梅')]
   
   这个XPath首先定位包含文本“张莹”的`<a>`标签的`<td>`标签,然后向前查找前一个兄弟`<td>`标签,该标签的类为`name`,并且其子`<a>`标签包含文本“苏雪梅”。

day03

1、等待

1)强制等待--调试代码

import time 

time.sleep(3)

程序执行到此处会强制等待3s

2)隐式等待

driver.implicitly_wait(2)

表示对程序执行整个生命周期内的元素都会等待2s.不需要导包哦

3)显式等待

4)包含下拉框的项目地址

包含下拉框的项目地址:https://sahitest.com/demo/selectTest.ht

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

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

相关文章

Rust基础学习-Rust中的文件操作

文件结构 在Rust中&#xff0c;std::fs::File 结构体代表一个文件。它允许我们对文件执行读/写操作。文件 I/O 是通过提供与文件系统交互的功能的 std::fs 模块执行的。 File 结构体中的所有方法都返回std::io::Result的变体&#xff0c;或者简单地是 Result 枚举。这里会涉及…

开发项目功能开发设计模板

功能开发设计是一个系统化的过程&#xff0c;旨在确保新功能的开发既满足用户需求又符合技术标准。以下是一个适用于大多数软件开发项目功能开发设计模板&#xff1a;

短信群发平台为什么要用网页版的短信平台呢

短信群发平台选择使用网页版短信平台的原因可以归纳为以下几点&#xff1a; 1.操作简便&#xff1a; 网页版短信群发平台通常具有直观易用的界面&#xff0c;用户无需下载或安装任何软件&#xff0c;只需通过浏览器即可访问。 使得用户可以随时随地轻松进行短信发送和管理&a…

React中实现大模型的打字机效果

React 想实现一个打字机的效果&#xff0c;类似千问、Kimi 返回的效果。调用大模型时&#xff0c;模型的回答通常是流式输出的&#xff0c;如果等到模型所有的回答全部完成之后再展示给最终用户&#xff0c;交互效果不好&#xff0c;因为模型计算推理时间比较长。本文将采用原生…

Vue3+.NET6前后端分离式管理后台实战(二十五)

1&#xff0c;Vue3.NET6前后端分离式管理后台实战(二十五)已经在微信公众号更新&#xff0c;有兴趣的扫码关注一起交流学习。

企业购买一套ABAQUS需要多少钱?ABAQUS价格解析

在高性能仿真分析领域&#xff0c;ABAQUS软件凭借其强大的非线性分析能力、精确的求解精度以及广泛的应用范围&#xff0c;成为众多企业和研究机构的首选工具。然而&#xff0c;对于想要采购ABAQUS的企业来说&#xff0c;了解其价格体系是做出投资决策前的关键一步。亿达四方&a…

【全开源】数据大屏系统源码(ThinkPHP+FastAdmin)

&#x1f4c8;数据大屏系统&#xff1a;可视化数据的魅力舞台&#x1f5a5; 基于ThinkPHPFastAdmin开发的数据大屏&#xff0c;可视化义拖拽快速制作数据大屏/科技大屏&#xff0c; 内置30组件、获取实时数据、使用简单易上手&#xff0c;轻松实现图形数据统计等。​ 一、引言…

Microsoft Office 2021 批量授权版(202405)

软件介绍 Office 2021的最新版本集成了过去三年在Office 365中实施的所有改进&#xff0c;涵盖了Word、Excel、PowerPoint、Outlook、Project、Visio、Access和Publisher等应用程序。此次专为Windows设计的Office 2021更新&#xff0c;采取了一次性发布的方式&#xff0c;而不…

【Python报错】SyntaxError: invalid character in identifier

成功解决“SyntaxError: invalid character in identifier”错误的全面指南 一、引言 在Python编程中&#xff0c;SyntaxError是一种常见的编程错误&#xff0c;它表明Python解释器在解析代码时遇到了不符合语法规则的情况。其中&#xff0c;“SyntaxError: invalid character…

Django表单革命:打造安全、高效、用户友好的Web应用

Django表单处理&#xff0c;听起来是不是有点枯燥&#xff1f;别急&#xff0c;阿佑将带你领略Django表单的艺术之美。我们将以轻松幽默的语言&#xff0c;一步步引导你从表单的创建到管理&#xff0c;再到验证和自定义&#xff0c;让你在不知不觉中掌握Django表单的精髓。文章…

Vue3【三】 使用TS自己编写APP组件

Vue3【三】 使用TS自己编写APP组件 运行截图 目录结构 注意目录层级 文件源码 APP.vue <template><div class"app"><h1>你好世界!</h1></div> </template><script lang"ts"> export default {name:App //组…

如何利用pandas解析html的表格数据

如何利用pandas解析html的表格数据 我们在编写爬虫的过程中&#xff0c;经常使用的就是parsel、bs4、pyquery等解析库。在博主的工作中经常的需要解析表格形式的html页面&#xff0c;常规的写法是&#xff0c;解析table表格th作为表头&#xff0c;解析td标签作为表格的行数据 …

Flutter开发效率提升1000%,Flutter Quick教程之对组件进行拖拽与接收

1&#xff0c;首先&#xff0c;所有可以选择的组件&#xff0c;都在左边的组件面板里。从里面点击任何一个&#xff0c;按住左键&#xff0c;向右边的手机面板上进行拖拽即可。 2&#xff0c;拖拽后&#xff0c;我们要选择一个接收组件。什么时候可以接收组件&#xff0c;就是当…

用Conda配置Pytorch环境 (pytorch==2.2.1)

用Conda配置Pytorch环境 (pytorch==2.2.1) 本文主要讲解: 如何用Conda搭建Pytorch环境,用Conda的方式安装,不需要单独去安装Cuda了。 1. 安装miniconda https://docs.anaconda.com/free/miniconda/index.html 2. 搭建虚拟环境 激活python虚拟环境 conda create -n env…

外界访问docker服务失败

各位i大佬请问一下&#xff1a;我容器起了&#xff0c;但是外网访问不了目标机器的9090端口。 我检查了&#xff1a;1.本机的防火墙已关闭&#xff0c; 2.目标机器的9090端口显示正在被docker监听。 3.外网可以访问目标机器。 4.docker日志&#xff0c;未显示服务报错。 5…

基于细节增强卷积和内容引导注意的单图像去雾

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 摘要Abstract文献阅读&#xff1a;DEA-Net&#xff1a;基于细节增强卷积和内容引导注意的单图像去雾1、研究背景2、方法提出3、相关知识3.1、DEConv3.3、多重卷积的…

ARM32开发--GPIO输入模式

知不足而奋进 望远山而前行 目录 文章目录 前言 浮空输入 上拉输入 下拉输入 模拟输入 总结 前言 在数字电路设计和嵌入式系统开发中&#xff0c;理解输入信号的处理方式对确保系统稳定性和可靠性至关重要。不同的输入处理方式包括上拉输入、下拉输入、浮空输入和模拟输…

VSCode界面Outline只显示类名和函数名,隐藏变量名

参考链接 https://blog.csdn.net/Zjhao666/article/details/120523879https://blog.csdn.net/Williamcsj/article/details/122401996 VSCode中界面左下角的Outline能够方便快速跳转到文件的某个类或函数&#xff0c;但默认同时显示变量&#xff0c;导致找某个函数时很不方便。…

62、 忠北国立大学计算机科学系:FingerNet-专门用于细致MI分类的神经网络模型

本文由泡菜国高校于2024年3月6日发表于arXiv&#xff0c;做了一个专门处理运动想象信号的CNN模型&#xff0c;融合了EEGNet和DeepConvNet。 FingerNet是一种专门用于细致MI分类的网络&#xff0c;利用了时间特征&#xff0c;在相同手部分类任务中表现出比EEGNet和DeepConvNet更…

NetworkX网络分析综合指南

在这个信息过载的世界&#xff0c;我向你保证&#xff0c;本指南是你掌握 NetworkX 强大功能所需的一切。其全面的内容和循序渐进的方法将为你提供宝贵的见解和理解。 在当今互联互通的世界中&#xff0c;了解网络及其结构已成为从社交网络分析到交通系统优化等无数应用的必备…