python - Python selenium:编辑网页源代码
问题描述
这是我的代码:
import os
import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
opt = Options()
opt.add_argument("--disable-infobars")
opt.add_argument("start-maximized")
# Pass the argument 1 to allow and 2 to block
opt.add_experimental_option("prefs", {
"profile.default_content_setting_values.media_stream_mic": 2,
"profile.default_content_setting_values.media_stream_camera": 2,
"profile.default_content_setting_values.geolocation": 2,
"profile.default_content_setting_values.notifications": 2
})
executable_path = r'C:\Users\SAMSUNG\Dropbox\CreationNumMaroc\chromedriver'
os.environ["webdriver.chrome.driver"] = executable_path
global driver
driver = webdriver.Chrome(r'C:\Users\SAMSUNG\Dropbox\CreationNumMaroc\chromedriver', options=opt)
# NavigationStart
time.sleep(3)
driver.get("https://yandex.com/")
time.sleep(4)
driver.find_element_by_xpath("//input[@class='input__control input__input mini-suggest__input']").send_keys("fkljdslkjdfdks")
time.sleep(2)
html_source = driver.page_source
if "fkljdslkjdfdks" in html_source:
print(html_source)
else:
print("nothing")
我的脚本转到 yandex.ru,在搜索“fkljdslkjdfdks”上写。然后:我想从源页面编辑单词“fkljdslkjdfdks”。
解决方案
您没有点击搜索按钮,这就是您可能在页面源代码中找不到搜索字符串的原因。
点击搜索按钮:
driver.find_element_by_xpath("//span[text()='Search']/..").click()
更新 1:
如果要更改文本,则必须找到该元素的定位器。这是示例代码:
element = driver.find_element_by_id("fkljdslkjdfdks id locator")
driver.execute_script("arguments[0].innerText = 'your new string value';", element)
推荐阅读
- javascript - 使用 ES6 数组按对象排序的 Javascript 失败
- java - 如何在我的 java 类中将 firebase 值存储为全局整数
- python - CSV转换行列的所有组合
- node.js - 高级调度程序 - Heroku - smtp 服务发送到电子邮件
- ruby - 为什么浮点数除以零不会在 Ruby 中引发异常?
- docker - Docker 卷和绑定
- c - Linux 套接字:有没有办法只接收来自特定环的数据包?
- reactjs - 在 ReactJS 中处理类似组件的最佳方法是什么?
- java - 选定的单选按钮取前一个的值
- sql - 在 SQL Server 的 WHERE 子句中按变量选择所有行