我正在使用 python 和 selenium 研究网络自动化,并创建了一个代码来在输入文本中插入一个值。
这是我的代码:
from selenium import webdriver
from selenium.webdriver.common.by import By
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.service import Service
service = Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service)
driver.get("https://www.google.com/")
input = driver.find_element(By.XPATH, "//*[@id='APjFqb']")
input.send_keys("Test")
代码应打开浏览器并在输入中插入“测试”,但页面会在设置值之前关闭。
Safari 也发生了同样的事情。
您可能不应该使用
input
,因为这是 Python 中的保留方法。
您可能也不应该使用
ChromeDriverManager
,因为 selenium 现在包含 Selenium Manager。
这看起来像一个自动生成的选择器,这意味着每次加载该页面时它都可能会发生变化。在 Google 页面上使用
(By.CSS_SELECTOR, '[name="q"]')
代替。
如果您希望脚本在测试结束时停止,请在最后一行添加
breakpoint()
。要在断点处停止时继续程序,请键入 c
并按 Enter。
以下是所有内容:
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get("https://google.com")
search_bar = driver.find_element(By.CSS_SELECTOR, '[name="q"]')
search_bar.send_keys("selenium github")
search_bar.submit()
breakpoint()
driver.quit()
为了提高可靠性,您可以使用
WebDriverWait
等待元素,然后再与它们交互。更多信息:https://www.selenium.dev/documentation/webdriver/waits/