首页 > 编程语言 >python - selenium + Edge

python - selenium + Edge

时间:2023-05-22 19:00:10浏览次数:67  
标签:xpath tmp retry python selenium driver element Edge find

1. 安装相关库和下载相关文件

pip3 install selenium
pip3 install msedge-selenium-tools

https://developer.microsoft.com/zh-cn/microsoft-edge/tools/webdriver/ 下载msedgedriver.exe,可在edge帮助查看当前edge的版本号,下载对应版本即可

2. 代码

from selenium import webdriver
from msedge.selenium_tools import Edge, EdgeOptions
from selenium.webdriver.common.action_chains import ActionChains
from retry import retry

# 使用xpath来定位元素
@retry(tries=3, delay=1) # 重试3次, 间隔1s
def try_find_element(xpath):
    tmp = driver.find_element_by_xpath(xpath)
    return tmp

@retry(tries=3, delay=1)
def try_click_element(xpath):
    tmp = driver.find_element_by_xpath(xpath)
    tmp.click()

@retry(tries=3, delay=1)
def try_click_elements(xpath, num):
    tmp = driver.find_elements_by_xpath(xpath)[num]
    tmp.click()

@retry(tries=3, delay=1)
def try_click_box(xpath, flag):
    tmp = driver.find_element_by_xpath(xpath)
    if flag == tmp.is_selected():
        tmp.click()

@retry(tries=3, delay=1)
def try_switch_input(xpath, text):
    tmp = driver.find_element_by_xpath(xpath)
    tmp.clear()
    tmp.send_keys(text)

@retry(tries=3, delay=1)
def try_dclick_element(xpath):
    dclick = driver.find_element_by_xpath(xpath)
    ActionChains(driver).double_click(dclick).perform()

options = EdgeOptions()
options.use_chromium = True
options.add_experimental_option('excludeSwitches',['enable-automation'])  # 开启开发者模式
options.add_argument('--disable-blink-features=AutomationControlled')  # 禁用启用Blink运行时的功能
options.binary_location = r'C:\Program Files (x86)\Microsoft\EdgeCore\113.0.1774.50\msedge.exe'
url = 'https://www.baidu.com/'

driver = Edge(options=options, executable_path='./msedgedriver.exe')
driver.get(url)

标签:xpath,tmp,retry,python,selenium,driver,element,Edge,find
From: https://www.cnblogs.com/wstong2052/p/17421454.html

相关文章

  • python 安装pip
    目录python安装pip下载get-pip.py脚本运行get-pip.py脚本pip使用python安装pip在安装Python库时,常用的工具是pip(Python包管理器)。如果你在使用Python时还没有安装pip,你可以按照以下步骤安装:下载get-pip.py脚本你可以从官方网站https://bootstrap.pypa.io/get-......
  • Weakly Supervised Temporal Action Localization via Representative Snippet Knowle
    0.前言相关资料:arxivgithub论文解读论文基本信息:领域:弱监督时序动作定位发表时间:CVPR2022(2022.3.14)1.针对的问题许多现有的方法试图生成伪标签来弥补分类和定位之间的差异,但通常只使用有限的上下文信息,即每个片段内的信息,来生成伪标签。2.主......
  • mkvirtualenv创建虚拟环境指定python版本号
    mkvirtualenv创建的虚拟环境,不指定具体的python版本时,默认使用的python版本是添加的环境变量中设置的pyhton版本。mkvirtualenv可以指定python版本,如:mkvirtualenv--python=python3.10venvname#venvname虚拟环境名称或者mkvirtualenv-ppython3.10venvname#venvna......
  • Python的基础语法(五)“数据内置方法之字典、元组、集合”
    字典的内置方法1、字典常用的定义方法:info={'name':'tony','age':18,'sex':'male'}info=dict(name='tony',age='18')2、字典的内置方法2.1、按照key取值,可存可取:dic={......
  • Python多进程运行——Multiprocessing基础教程2
    转载:Python多进程运行——Multiprocessing基础教程2-知乎(zhihu.com)1数据共享在多进程处理中,所有新创建的进程都会有这两个特点:独立运行,有自己的内存空间。我们来举个例子展示一下:importmultiprocessing#emptylistwithglobalscoperesult=[]defsquare_l......
  • 聊聊python的字符编码
    什么是字符编码?在计算机内部,所有的数据都是二进制形式存储的,无法直接存储我们人类的语言文字符号等,所以我们需要制定一种转换规则来明确计算机内部二进制与我们的数字符号文字之间的对应关系,这就出现了‘字符编码’。字符编码的发展史阶段一现代计算机起源于美国,所以......
  • 比较不同Python图形处理库或图像处理库的异同点
    python的图像处理库有很多种比如:pillow库、Numpy库、Scipy库、opencv库、pgmagic库等其中较常用的是NUmapy库、pillow库、openCV库,今天我们就这三种图像处理库来进行比较首先是numapy库;他是一个python库可以帮助我们处理所有类型的科学计算,他是在执行任何数据预处理或数据科......
  • Python中for循环
    在Python中,for循环用于遍历可迭代对象(如列表、元组、字符串等)中的元素,并执行相应的操作。for循环的基本语法如下:forelementiniterable:#执行操作其中,element是一个变量,用于存储每次循环迭代的元素值,iterable是一个可迭代对象,包含一系列元素。以下是一个简单的示例,演示如......
  • AcWing901. 滑雪(python)
    题目详情知识点记忆化DP思路自己的思路(仅参考):一开始想的是找最大值,然后从最大值开始向下滑,但是我们是要求最长路径,不一定是从最高的点滑下去的,也不一定是滑到最低点,而且会存在最大值不止一个的情况,所以我们应该是针对每一个点,都求出当前该点出发能去的最长路径,然后求完之后......
  • Python竖版大屏 | 用pyecharts开发可视化的奇妙探索!
    你好!我是@马哥python说,一枚10年程序猿......