一些web自动化问题解决方法(新手版)

一、关于浏览器及驱动安装和配置的问题:以edge浏览器为例

1.1首先edge浏览器需要先查看浏览器的对应版本,这个很简单,略过

1. 2去这个网站下载对应版本的驱动,Microsoft Edge WebDriver - Microsoft Edge Developer

1.3下载好以后解压然后把“msedgedriver.exe”文件复制到当前代码所在目录里就可以了,然后运行以下代码看是否可以正常打开浏览器,检验浏览器驱动是否配置成功

1.4由于代码编写粗心可能会出现的异常:

selenium.common.exceptions.InvalidArgumentException: Message: invalid argument

(Session info: MicrosoftEdge=110.0.1587.41)

原因:请求URL的请求部分漏掉,如图选中的部分漏掉会报以上错误。

修改后如图即可正常运行了。。。

二、关于selenium定位元素报错:AttributeError: 'WebDriver' object has no attribute 'find_element_by_id'

1.1原因:Selenium经过版本升级之后(4.x版本),按照旧的语法运行后会报错,在版本没有更新前我们使用的都是driver.find_element_by_方法名("value"),方法名就是by_id、by_class_name、by_name等等,而"value",则是传入的值。

1.2解决方法:修改后的格式由 driver.find_element_by_方法名(”value”)变为 driver.find_element(By.方法名, “value”),具体改动如下:

注意在改动代码之后会有红线提示,即要导包,这里可以使用快捷键Alt加回车快速导包。

from selenium.webdriver.common.by import By

修改完之后,selenium就可以进行自动化工作了

三、如果要打开本地URL,方法?

直接复制本地的路径出来运行会路径报错。因为/反斜杠在Python是转义字符。

1.1直接在复制出来的本地路径前面加r。推荐。因为r修饰的字符窜,如果字符窜中有转义字符,不会进行转义

1.2单反斜杠变成双反斜杠,进行转义

1.3使用本地浏览模式,前缀必须添加file:///,且注意复制本地的路径中的反斜杠要变成正斜杠

1.4复制该文件打开的浏览器地址,不需要改变

如图:

拓展:关于正斜杠和反斜杠区分

猜你喜欢

转载自blog.csdn.net/m0_73485816/article/details/128968061
今日推荐