【问题标题】: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()