为什么我的浏览器在执行整个 selenium 代码之前自动关闭?

问题描述 投票:0回答:1

我正在使用 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 也发生了同样的事情。

python selenium-webdriver browser automation
1个回答
0
投票

您可能不应该使用

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/

© www.soinside.com 2019 - 2024. All rights reserved.