此代码运行时没有任何错误,但在搜索w3school后会自动关闭google chrome
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
def google():
driver.get("https://www.google.com")
driver.find_element_by_xpath('//*[@id="tsf"]/div[2]/div[1]/div[1]/div/div[2]/input').send_keys('w3school')
driver.find_element_by_xpath('//*[@id="tsf"]/div[2]/div[1]/div[3]/center/input[1]').send_keys(Keys.ENTER)
google()
试试webdriver中提供的实验选项,比如:
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_experimental_option("detach", True)
driver = webdriver.Chrome(options=options, executable_path="path/to/executable")
注意事项:这确实会使镀铬标签打开和分离,之后您必须手动关闭
您必须在函数外部打开浏览器实例,以便在执行函数内部的代码后保持打开状态
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
driver.get("https://www.google.com")
def google():
driver.find_element_by_xpath('//*[@id="tsf"]/div[2]/div[1]/div[1]/div/div[2]/input').send_keys('w3school')
driver.find_element_by_xpath('//*[@id="tsf"]/div[2]/div[1]/div[3]/center/input[1]').send_keys(Keys.ENTER)
google()
因为"驱动器";变量是函数中的局部变量,因此当函数完成时;驱动器";变量将被删除,然后浏览器将自动关闭。
=>解决方案是您设置";驱动器";是程序中的全局变量。
我使用chromedriver打开chrome。
- 根据您的chrome版本下载chrome驱动程序
- 将chrome驱动程序解压缩到C驱动器中的以下路径
- 然后使用以下代码打开chrome网页
chromepath = 'C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe'
driver = webdriver.Chrome(executable_path=chromepath)
在我的案例中,chrome驱动程序的版本需要被我的chrome的currenct版本所取代。