selenium模拟登录的一些tips

本文介绍了使用selenium进行网站模拟登录时的关键步骤,包括驱动的自动匹配安装,去除webdriver痕迹以避免被网站识别,以及XPath元素定位的实用技巧,如选取所有元素和查找特定元素的方法。此外,还提到了拖拽元素的操作。这些知识点适用于自动化测试和网页交互场景。
摘要由CSDN通过智能技术生成

借助selenium登录网站是一个常见的操作,接下来的大部分代码是开发写好的,这里是自己整理下来的知识点。

驱动安装

之前常常是先根据浏览器版本下载对应版本的驱动,但其实有一个办法是可以自动获取当前浏览器的版本,自动下载对应的驱动到本地的。

    from webdriver_manager.chrome import ChromeDriverManager
    browser = webdriver.Chrome(ChromeDriverManager().install())

去掉webdriver痕迹

有一些网站,当用webdriver访问时,会提示请求失败。这时,就需要去掉webdriver痕迹,模拟正常登录。

    from selenium.webdriver import ChromeOptions
    options = ChromeOptions() # 启动配置参数
    options.add_argument("--disable-blink-features=AutomationControlled") # 增加参数
    browser = webdriver.Chrome(ChromeDriverManager().install(), options=options)

如果还需去掉受自动测试软件控制的提示,则需要添加如下参数

    options.add_experimental_option('useAutomationExtension', False)

xpath定位元素的tips

//* 代表选取文档中的所有元素
    # 查找所有元素,找到文案包含“登录”的元素,点击
    browser.find_elements(By.XPATH, "//*[contains(text(), '登录')]")[0].click()
查找特定元素
    placeholder = '用户名'
    account='username'
    # 选取所有input元素(不管位置),拥有值为{placeholder}的placeholder属性
    browser.find_elements(By.XPATH, f"//input[@placeholder='{placeholder}']")[0].send_keys(account)

上方代码以f开头,表示在字符串内支持大括号内的python表达式

拖拽元素
    from selenium.webdriver import ActionChains
    # 找到drag元素
    drag = browser.find_elements(By.XPATH, "//span[@class='btn_slide']")[0]
    # 调用ActionChains()类,并将浏览器驱动browser作为参数传入
    action_chains = ActionChains(browser)
    # 模拟拖拽,拖拽到某个坐标然后松开
    action_chains.drag_and_drop_by_offset(drag, 320, 0)
    # 执行ActionChains()中储存的所有操作,可以看做是执行之前一系列的操作
    action_chains.perform()

唉,是一波知识点了,但是很无语,没有什么特别的进步的感觉~
今天的更新到这里了~
自我记录,有错误欢迎指正~

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值