【问题标题】:Close Chromewebdriver when user close tab in Selenium当用户关闭 Selenium 中的选项卡时关闭 Chromewebdriver
【发布时间】:2020-03-10 17:17:13
【问题描述】:

使用 Selenium 创建 Chrome 应用时,当用户手动关闭标签页时,chromedriver.exe 仍处于后台。有没有办法解决这个问题?

我不想在我的代码中使用driver.quit(),因为用户需要在这个 chrome 应用中做一些事情。

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument('--app=https://www.jianshu.com/sign_in')
driver = webdriver.Chrome(".\\chromedriver.exe", options=chrome_options)

driver.find_element_by_xpath('//*[@id=\"session_email_or_mobile_number\"]').send_keys('aaaa')
driver.find_element_by_xpath('//*[@id=\"session_password\"]').send_keys('bbbbbbbbbb')

【问题讨论】:

  • 您的意思是chromedriver.exe实例在您关闭手动关闭的chrome实例时没有关闭?

标签: selenium google-chrome selenium-webdriver


【解决方案1】:

我认为当用户手动关闭 selenium 启动的 chrome 实例时,我们没有直接的解决方案来关闭 chromedriver.exe。或者,您可以将以下命令另存为 bat,然后在每次手动关闭 chrome 选项卡时双击。

taskkill /IM  chromedriver.exe /F

【讨论】:

  • 该命令可能没有用,因为它会关闭所有被其他 selenium 程序使用的 chromedriver.exe。我在想我可以只在后台运行一个 chromedriver.exe,selenium 程序连接到它而不是启动一个新的 chromedrive.exe。
  • 其他选项是您可以使用driver.service.process.pid 获取 PID 并在浏览器启动后立即更新 bat 文件。所以现在,bat 文件将关闭最新的 chromedriver.exe 实例。只是分享想法...
【解决方案2】:
`from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument('--app=https://www.jianshu.com/sign_in')
driver = webdriver.Chrome(".\\chromedriver.exe", options=chrome_options)

driver.find_element_by_xpath('//* 
[@id=\"session_email_or_mobile_number\"]').send_keys('aaaa')
driver.find_element_by_xpath('//*[@id=\"session_password\"]').send_keys('bbbbbbbbbb')

driver.close()

///测试后只需添加driver.close()关闭chrome浏览器

【讨论】:

  • 我试过这个和driver.quit(),没有任何效果:(。如果你打开任务管理器,chromedriver.exe 仍然存在。另外,我不能在我的代码中直接调用driver.close(),当我需要在这个网页上做一些工作时,它会立即关闭打开的标签。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-30
  • 1970-01-01
  • 2021-01-21
相关资源
最近更新 更多