Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在普通的chrome而不是chromedriver中运行selenium代码?_Python_Selenium_Browser_Selenium Chromedriver - Fatal编程技术网

Python 如何在普通的chrome而不是chromedriver中运行selenium代码?

Python 如何在普通的chrome而不是chromedriver中运行selenium代码?,python,selenium,browser,selenium-chromedriver,Python,Selenium,Browser,Selenium Chromedriver,这里有一个examle代码来解释我的问题 from selenium import webdriver from selenium.webdriver.common.keys import Keys def test(): username = "gmail" password = "password" driver = webdriver.Chrome("C://Users//Dell//Desktop//chro

这里有一个examle代码来解释我的问题

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

def test():

    username = "gmail"
    password = "password"

    driver = webdriver.Chrome("C://Users//Dell//Desktop//chromedriver.exe")
    driver.implicitly_wait(15)
    driver.get("http://www.facebook.com")

    elem = driver.find_element_by_name("email")
    elem.send_keys(username)
    elem = driver.find_element_by_name("pass")
    elem.send_keys(password)
    elem.send_keys(Keys.RETURN)

    #code after logging

test()
每当我运行此代码时,代码都会在单独的chromedriver窗口中运行

我想让我的代码在登录facebook后做一些事情。 每次我重定向到facebook,网站都会要求我允许通知。因此,整个屏幕变黑,唯一可点击的元素就是弹出窗口。因此,所有其他元素都变得不可拾取。所以我得到了这个错误

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate 
element: 
如果我可以在我已经允许/拒绝facebook通知的常规浏览器中运行此代码。弹出窗口不会再次出现,错误也不会发生


如何在常规浏览器中运行此代码?

您只需使用此配置关闭弹出的通知:

from selenium.webdriver.chrome.options import Options
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

# config to remove pop ups
opt = Options()
opt.add_argument("--disable-infobars")
opt.add_argument("start-maximized")
opt.add_argument("--disable-extensions")
# you can change the values below. 0 means off and 1 means on.
opt.add_experimental_option("prefs", { \
    "profile.default_content_setting_values.media_stream_mic": 1, 
    "profile.default_content_setting_values.media_stream_camera": 0,
    "profile.default_content_setting_values.geolocation": 0,
    "profile.default_content_setting_values.notifications": 1
  })

def test():

    username = "gmail"
    password = "password"

    driver = webdriver.Chrome("C://Users//Dell//Desktop//chromedriver.exe", options=opt)
    driver.implicitly_wait(15)
    driver.get("http://www.facebook.com")

    elem = driver.find_element_by_name("email")
    elem.send_keys(username)
    elem = driver.find_element_by_name("pass")
    elem.send_keys(password)
    elem.send_keys(Keys.RETURN)

    #code after logging

test()

这是一个非常简单的修复方法,您可以通过将1更改为0来禁用通知。

我对您问题的标题感到有点困惑。如果我理解正确的话,我想我纠正了一个拼写错误的单词。我把“常规”改为“常规”。如果这不正确,请随意更改。Greg Burghardt是的,这是常规。请注意:1是选择“允许”。2用于选择“不允许”。