python - Selenium - OSError: [WinError 6] 句柄无效
问题描述
我试图让我的自动 chrome 窗口保持打开状态,但它们会因以下错误而关闭:
Traceback (most recent call last):
File "C:\Users\Duma\AppData\Local\Programs\Python\Python37-32\lib\subprocess.py", line 841, in __del__
self._internal_poll(_deadstate=_maxsize)
File "C:\Users\Duma\AppData\Local\Programs\Python\Python37-32\lib\subprocess.py", line 1193, in _internal_poll
if _WaitForSingleObject(self._handle, 0) == _WAIT_OBJECT_0:
OSError: [WinError 6] The handle is invalid
使用Selenium和我的Python 脚本如下所示:
login_url='https://www.life4laptop.com/index.php?route=account/login'
url='https://www.life4laptop.com/index.php?route=product/search&search=samsung'
list=[]
driver=webdriver.Chrome(crm_path, chrome_options=options)
driver.get(login_url)
elem = driver.find_element_by_id("input-email")
elem.clear()
elem.send_keys(x['life4laptop']['username'])
elem = driver.find_element_by_id("input-password")
elem.clear()
elem.send_keys(x['life4laptop']['password'])
elem = driver.find_element_by_xpath("//form/input[@type='submit']")
elem.click()
driver.get(url)
driver2=webdriver.Chrome(crm_path, chrome_options=options)
driver2.get(login_url)
elem = driver2.find_element_by_id("input-email")
elem.clear()
elem.send_keys(x['life4laptop']['username'])
elem = driver2.find_element_by_id("input-password")
elem.clear()
elem.send_keys(x['life4laptop']['password'])
elem = driver2.find_element_by_xpath("//form/input[@type='submit']")
elem.click()
driver2.get(url)
#driver.close()
#driver.quit()
任何线索为什么,以及如何让它工作?
解决方案
如果您来到这里想知道为什么这个错误出现在您的tearDown(self)
方法上,那可能是因为您使用driver.close()
的是driver.quit()
.
您可以参考此线程(此处)以了解两者之间的区别,但总结一下:driver.close()
关闭选项卡/窗口但不关闭驱动程序实例,而driver.quit()
后者则关闭。
希望它可以帮助其他任何人在这里寻找这个问题的答案。
推荐阅读
- javascript - 如何使用 watch 依次运行多个 NPM 脚本
- java - 使用 arrayList 创建菜单并使用文本文件作为输入(bufferedReader)
- php - Jquery不会在更改时触发ajax
- git - 如何将 AWS S3(最终在 AWS EFS)上的更改同步回 Github 存储库?
- javascript - 在 JavaScript 代码中结合两个函数不起作用,但在单个函数中工作正常
- c# - mainPage.xaml 不会加载到 MainWindow.xaml 中的 mainWindowMain 框架中
- javascript - 菜单IE11问题
- unit-testing - vue 测试禁用输入的 vuetify
- javascript - 如何显示表格中的所有数据?
- java - 强化拒绝服务:正则表达式