首页
首页

Selenium学习笔记(1)

​ Xpath通过路径来定位控件,分为绝对路径和相对路径。绝对路径以单/号表示,相对路径则以//表示。当xpath的路径以/开头时,表示让Xpath解析引擎从文档的根节点开始解析。当xpath路径以//开头时,则表示让xpath引擎从文档的任意符合的元素节点开始进行解析。而当/出现在xpath路径中时,则表示寻找父节点的直接子节点,当//出现在xpath路径中时,表示寻找父节点下任意符合条件的子节点。弄清这个原则,就可以理解其实xpath的路径可以绝对路径和相对路径混合在一起来进行表示,想怎么玩就怎么玩。

遇到的问题:

  • Selenium如何让启动的浏览器和手动启动的浏览器信息一致:导入原浏览器的用户配置即可,通过edge://version/查询用户配置路径信息,不要复制Default。代码如下:
1
2
3
4
5
6
7
from selenium import webdriver

option = webdriver.EdgeOptions()
option.add_argument(r'--user-data-dir=C:\Users\samsung\AppData\Local\Microsoft\Edge\User Data')
option.add_experimental_option('excludeSwitches', ['enable-automation'])
driver = webdriver.Edge(options=option)

  • 清除“正受到自动测试软件的控制”的提示:
1
2
3
chrome_options = webdriver.ChromeOptions(); 
chrome_options.add_experimental_option("excludeSwitches", ['enable-automation']);
driver = webdriver.Chrome(options=chrome_options);
  • selenium保留网页登陆信息(保留用户数据):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#导入模块
import time
from selenium import webdriver
# 添加保持登录的数据路径:安装目录一般在C:\Users\****\AppData\Local\Google\Chrome\User Data
user_data_dir = r'C:\Users\samsung\AppData\Local\Google\Chrome\User Data'
#这是一个选项类
user_option = webdriver.ChromeOptions()
#添加浏览器用户数据
user_option.add_argument(f'--user-data-dir={user_data_dir}')
#实例化浏览器(带上用户数据)
driver = webdriver.Chrome(options=user_option)

driver.get("https://www.csdn.net/")
time.sleep(10)
  • 无法操控钱包插件:为了在我们的自动浏览器上加载插件,我们首先需要将Metamask扩展压缩成一个.crx文件,以下是步骤:
  1. 在你的普通chrome上安装Metamask
  2. 导航到chrome://extensions/
  3. 点击’打包扩展程序(Pack extension)’,并输入Metamask 插件的本地路径,这将生成一个.crx文件,你可以用它作为扩展加载到Chromium上。保存安装扩展的文件夹的名称,这将是我们以后要使用的’扩展ID’。

注:后续遇到问题,搁置。暂时解决办法使用“**selenium保留网页登陆信息(保留用户数据):**”,+切换的方法:

1
2
3
driver.execute_script("window.open('');")
driver.switch_to.window(driver.window_handles[1])
driver.get('chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/home.html')
🌹
加油,越来越好