【问题标题】:Python Selenium find all CSS element and replace allPython Selenium 查找所有 CSS 元素并替换所有
【发布时间】:2021-12-12 09:07:51
【问题描述】:

我想使用 Python Selenium 更改 CSS 元素样式,同时自动更改页面的主题颜色。例如页面元素如下:

<div style="background: #e7e7e7">
   <div style="border-bottom: #e7e7e7; border-top: #e7e7e7">

我想将颜色从#e7e7e7 更改为#318c89,这意味着我需要在HTML 脚本中找到所有e7e7e7 并将所有#318c89 替换,但我不知道该怎么做。

提前致谢。

【问题讨论】:

    标签: python html css selenium


    【解决方案1】:

    试试这个:

    script = "document.body.innerHTML = document.body.innerHTML.replaceAll('#e7e7e7', '#318c89')"
    driver.execute_script(script)
    

    【讨论】:

      【解决方案2】:

      这使用 JavaScript 将 dom 中的所有文本替换为由 selenium 执行 JavaScript 函数执行的给定文本。

      from selenium import webdriver
      from time import sleep
      
      # Run with Chrome window visible
      DRIVER_PATH = 'path to driver'
      driver = webdriver.Chrome(executable_path=DRIVER_PATH)
      driver.get("webpage url")
      # change to first colour
      js = """
      document.body.innerHTML = document.body.innerHTML.replaceAll('#e7e7e7 ', '#318c89')
      console.log("Hello World");
      """
      driver.execute_script(js)
      sleep(10)
      # change back
      js = """
      document.body.innerHTML = document.body.innerHTML.replaceAll('#318c89 ', '#e7e7e7')
      console.log("Hello World");
      """
      driver.execute_script(js)
      sleep(60)
      
      driver.quit()
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-10
        • 2015-11-10
        • 2020-01-13
        • 2023-01-12
        • 1970-01-01
        相关资源
        最近更新 更多