我用谷歌搜索并堆栈溢出错误,看起来有一个需要禁用的chrome选项useAutomationExtension.我继续搜索python的正确语法(环境:Python 2.7-win32,运行chrome驱动程序2.30.477700(0057494ad8732195794a7b32078424f92a5fce41)),但找不到合适的chrome开关/选项.
我也研究了这个问题:来自谷歌的Chromium / Chrome切换:https://chromium.googlesource.com/chromium/src/+/master/chrome/common/chrome_switches.cc
和彼得的铬开关列表:https://peter.sh/experiments/chromium-command-line-switches/
我模糊地试过chrome_options.add_argument(‘ – disable-useAutomationExtension’),但这也没有帮助.
所以,我需要你的指导和建议.请帮忙.
Code_part:
from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from selenium.webdriver.support.ui import Select from selenium.common.exceptions import NoSuchElementException from selenium.common.exceptions import NoAlertPresentException import unittest,time,re,os from selenium.webdriver.chrome.options import Options class Sel(unittest.TestCase): def setUp(self): # self.driver = webdriver.Firefox() # Clean existing file before starting ############################################# dlpath = "C:\Users\Baba\blacksheep_tracker.xlsm" if os.path.exists(dlpath): os.remove(dlpath) ############################################ chrome_options = Options() chrome_options.add_argument("--cipher-suite-blacklist=0x0039,0x0033") chrome_options.add_argument("--disable-extensions") chrome_options.add_argument('--start-maximized') chrome_options.add_argument('--disable-useAutomationExtension') self.driver = webdriver.Chrome(chrome_options=chrome_options) self.driver.implicitly_wait(30) self.base_url = "https://monsanto365.sharepoint.com/teams/XYZ_Tracker.xlsm" self.verificationErrors = [] self.accept_next_alert = True def test_sel(self): driver = self.driver ## Launch the download url and wait for the download to complete driver.get("https://monsanto365.sharepoint.com/teams/xyz_tracker.xlsm") print 'Loading complete' time.sleep(30) print '30 sec over' def is_element_present(self,how,what): try: self.driver.find_element(by=how,value=what) except NoSuchElementException,e: return False return True def is_alert_present(self): try: self.driver.switch_to_alert() except NoAlertPresentException,e: return False return True def close_alert_and_get_its_text(self): try: alert = self.driver.switch_to_alert() alert_text = alert.text if self.accept_next_alert: alert.accept() else: alert.dismiss() return alert_text finally: self.accept_next_alert = True def tearDown(self): self.driver.quit() self.assertEqual([],self.verificationErrors) if __name__ == "__main__": unittest.main()
编辑:
我也知道他们正在研究这个问题的官方谷歌答案,它与devtools命令和东西有关.由于这是永远的,我正在寻找任何临时解决方案或建议.链接:https://bugs.chromium.org/p/chromedriver/issues/detail?id=639
解决方法
可以使用useAutomationExtension选项禁用它:
from selenium import webdriver capabilities = { 'browserName': 'chrome','chromeOptions': { 'useAutomationExtension': False,'forceDevToolsScreenshot': True,'args': ['--start-maximized','--disable-infobars'] } } driver = webdriver.Chrome(desired_capabilities=capabilities)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。