selenium常见难点解决方案

勾选框勾选问题

要在 Selenium 中实现这样的逻辑,你可以首先找到勾选框的元素,然后检查它是否已经被勾选。如果已经勾选,则进行取消勾选操作;如果未勾选,则进行点击勾选操作。
以下是一个示例代码,演示了如何在 Selenium 中实现这一逻辑:

pythonfrom selenium import webdriver
import time

# 启动 Chrome 浏览器
driver = webdriver.Chrome()

# 打开网页
driver.get("Your_Page_URL_Here")

# 找到勾选框元素
checkbox = driver.find_element_by_xpath("Your_XPath_Here")

# 检查勾选框的状态
is_checked = "is-checked" in checkbox.get_attribute("class")

# 如果已经勾选,则进行取消勾选操作
if is_checked:
    checkbox.click()
    print("取消勾选")
else:
    # 如果未勾选,则进行点击勾选操作
    checkbox.click()
    print("勾选")

# 等待一段时间,查看结果
time.sleep(3)

# 关闭浏览器
driver.quit()

在这个示例中,我们首先找到了勾选框的元素,然后通过检查它的 class 属性来确定是否已经被勾选。如果已经勾选,则执行取消勾选操作;如果未勾选,则执行点击勾选操作。
请将代码中的 “Your_Page_URL_Here” 替换为你要操作的页面的 URL,将 “Your_XPath_Here” 替换为勾选框的 XPath 表达式。

调试产生的多个chromedriver

UI自动化调试期间会有很多打开的浏览窗口和CMD窗口,目前比较好的解决方案是使用浏览器端口复用或者采用直接kil的方法:

import os

os.system('taskkill /im chrome.exe /F')  # 关闭所有谷歌浏览驱动
os.system('taskkill /im chromedriver.exe /F')  # 关闭所有谷歌浏览器驱动
os.system('taskkill /im conhost.exe /F')  # 关闭所有cmd小黑窗加上几行代码:

悬浮窗口解决方案

悬浮窗口一般是先移动到悬浮窗口位置,等待悬浮窗口元素出现,出现后点击对应的悬浮菜单,这里需要使用hover方法对元素进行操作,具体代码如下:

# 定位到要悬停的元素
hover_element = driver.find_element_by_xpath('移动到悬浮位置')
actions = ActionChains(driver)
actions.move_to_element(hover_element).perform()
# 悬停操作后的操作,例如点击悬停后出现的菜单项
hover_element.find_element_by_xpath('待点击的元素定位信息').click()

搜索窗口点击指定元素:

一般搜索窗口会有模糊查询的内容,我们可以先定位到搜索框,然后再输入指定的要搜索的元素名称,最后然使用execute_script()对元素进行点击操作;

company_name = "哈尔滨华南城有限公司"
jg_name = driver.find_element_by_xpath('//*[@id="app"]/div[1]/div[2]/div/div/div[1]/div[2]/form/div[2]/div[1]/div[1]/div/div[1]/div/input').send_keys(company_name)
wait = WebDriverWait(driver, 10)
target_element = wait.until(EC.visibility_of_element_located((By.XPATH, f"//ul[contains(@class, 'el-autocomplete-suggestion__list')]//li[contains(text(), '{company_name}')]")))
# 使用JavaScript执行点击操作
driver.execute_script("arguments[0].click();", target_element)

相关推荐

  1. selenium常见难点解决方案

    2024-06-17 22:52:02       6 阅读
  2. 编程中常见的技术难题解决方案

    2024-06-17 22:52:02       36 阅读
  3. selenium元素单击不稳定解决方法

    2024-06-17 22:52:02       40 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-17 22:52:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-17 22:52:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-17 22:52:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-17 22:52:02       20 阅读

热门阅读

  1. c++ 矩阵应用

    2024-06-17 22:52:02       6 阅读
  2. 前端开发之浏览器垃圾回收机制

    2024-06-17 22:52:02       4 阅读
  3. LeetCode 3186 最大施法伤害

    2024-06-17 22:52:02       8 阅读
  4. nginx脚本原理(复杂变量)详解

    2024-06-17 22:52:02       7 阅读
  5. c# 根据空格分割字符串

    2024-06-17 22:52:02       9 阅读
  6. 中介子方程二十二

    2024-06-17 22:52:02       5 阅读
  7. 什么是props?

    2024-06-17 22:52:02       6 阅读
  8. 计算机网络期末复习

    2024-06-17 22:52:02       6 阅读
  9. mysql如何创建并执行事件?

    2024-06-17 22:52:02       6 阅读
  10. C# —— 枚举

    2024-06-17 22:52:02       9 阅读
  11. 工具清单 - 看板工具

    2024-06-17 22:52:02       10 阅读