使用 Selenium 修改 HTML
Posted
技术标签:
【中文标题】使用 Selenium 修改 HTML【英文标题】:Modify HTML with Selenium 【发布时间】:2020-01-16 07:56:42 【问题描述】:我想使用 Selenium(与 Python 3 一起运行)修改浏览器中的特定 html 元素,使其周围有“标记”标签(从而突出显示我感兴趣的文本)。有没有办法做到这一点?
【问题讨论】:
【参考方案1】:您可能想要突出显示输入框,并且您可能希望它只突出显示一小段时间......
这是我用来突出显示元素的函数:
def highlight_element(element):
driver_elem = element.parent
def apply_style(s):
driver_elem.execute_script("arguments[0].setAttribute('style', arguments[1]);",
element, s)
original_style = element.get_attribute('style')
apply_style("background: yellow; border: 2px solid red;")
sleep(0.5)
apply_style(original_style)
您必须向函数传递一个元素,例如:
highlight_element(driver.find_element_by_id("username"))
【讨论】:
【参考方案2】:如果页面使用 jQuery,这很容易实现:
driver.execute_script('$("#some_id").wrap("<mark></mark>")')
如果页面没有使用 jquery,您可以使用以下脚本手动添加:
from selenium import webdriver
import time
driver = webdriver.Firefox()
driver.get(url)
driver.execute_script("""var jquery_script = document.createElement('script');
jquery_script.src = 'https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js';
document.getElementsByTagName('head')[0].appendChild(jquery_script);""")
time.sleep(0.5) # you need to let jquery load first
driver.execute_script('$ = window.jQuery;')
driver.execute_script('$("#some_id").wrap("<mark></mark>")')
感谢 Furas 在这方面帮助我: how to add jQuery to a page using selenium.
【讨论】:
以上是关于使用 Selenium 修改 HTML的主要内容,如果未能解决你的问题,请参考以下文章