python - 使用 Selenium Python 查找和替换 innerHTML 中的单词
问题描述
我想使用 Selenium 在网页的 html 中查找和替换一个单词
我试过这个没有成功:
driver.get("https://www.selenium.dev/")
time.sleep(1)
element = driver.find_elements_by_xpath("//*[contains(text(),'power')]")
driver.execute_script("arguments[0].innerText = 'example'", element)
解决方案
使用find_element_by_xpath
而不是find_elements_by_xpath
这样您的代码将是
driver.get("https://www.selenium.dev/")
time.sleep(1)
element = driver.find_element_by_xpath("//*[contains(text(),'power')]")
driver.execute_script("arguments[0].innerText = 'example'", element)
此外,最好使用显式等待而不是硬编码的睡眠暂停
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
wait = WebDriverWait(driver, 20)
element = wait.until(EC.visibility_of_element_located((By.XPATH, '//*[contains(text(),"power")]')))
driver.execute_script("arguments[0].innerText = 'example'", element)
推荐阅读
- android - FCM 通知不显示在后台弹出通知
- python - 如何根据熊猫数据框每两个样本的另一列分别为每一列绘制线图?
- sql - 获得 2021 年每个月出现频率最高的值
- javascript - Javascript:从 json 对象获取值
- reactjs - setState() 不会触发重新渲染
- python - 你如何用python中的字节计算
- php - 升级codeignite 3.1.11和php 7.1后codeignte路由不起作用
- javascript - 在 Chrome 调试器中无法访问 Webpack
- azure - 是否可以在 Azure 的“企业应用程序”页面上手动注册一些 Azure AD 应用程序(仅用于其他桌面应用程序的 OAuth)?
- azure - IoT 中心和事件中心之间的事件订阅 - Terraform