我在Mac OS X上使用selenium和python 3.6.3。
此代码运行良好,打开谷歌浏览器和Chrome保持打开状态。:
chrome_options = Options()
chrome_options.binary_location="../Google Chrome"
chrome_options.add_argument("disable-infobars");
driver = webdriver.Chrome(chrome_options=chrome_options)
driver.get("http://www.google.com/")
但是,如果代码包含在函数中,浏览器会在打开页面后立即终止:
def launchBrowser():
chrome_options = Options()
chrome_options.binary_location="../Google Chrome"
chrome_options.add_argument("disable-infobars");
driver = webdriver.Chrome(chrome_options=chrome_options)
driver.get("http://www.google.com/")
launchBrowser()
我想在保持浏览器打开的同时在函数内使用相同的代码。
答案 0 :(得分:3)
只需添加:
while(True):
pass
功能结束。会是这样的:
def launchBrowser():
chrome_options = Options()
chrome_options.binary_location="../Google Chrome"
chrome_options.add_argument("disable-infobars");
driver = webdriver.Chrome(chrome_options=chrome_options)
driver.get("http://www.google.com/")
while(True):
pass
launchBrowser()
答案 1 :(得分:2)
要使钻头保持打开状态,我正在这样做:
rand.nextInt(2);
答案 2 :(得分:1)
一旦驱动程序的变量超出范围,浏览器将自动释放。 因此,为避免退出浏览器,您需要在全局变量上设置驱动程序的实例:
Dim driver As New ChromeDriver
Private Sub Use_Chrome()
driver.Get "https://www.google.com"
' driver.Quit
End Sub
答案 3 :(得分:1)
遇到同样问题的人,只需将驱动程序设置为全局即可,简单如下:
global driver
driver.get("http://www.google.com/")
这解决了我这边的问题,希望这会有所帮助
答案 4 :(得分:0)
根据您共享的代码块,可以有以下3种可能的解决方案:
binary_location
中,您必须将 ..
更改为 .
(.
表示项目工作区) binary_location
中,您必须将 ..
更改为 /myspace/chrome
(绝对Chrome二进制文件)启动驱动程序时,添加开关executable_path
:
driver = webdriver.Chrome(chrome_options=options, executable_path=r'/your_path/chromedriver')
答案 5 :(得分:0)
这有点老了,但是这里的答案并不能解决问题。谷歌搜索使我来到这里
http://chromedriver.chromium.org/getting-started
此处的测试代码使用sleep来保持浏览器打开。我不确定是否有更好的选择,所以我将在学习时进行更新。
import time
from selenium import webdriver
driver = webdriver.Chrome('/path/to/chromedriver') # Optional argument, if not specified will search path.
driver.get('http://www.google.com/xhtml');
time.sleep(5) # Let the user actually see something!
search_box = driver.find_element_by_name('q')
search_box.send_keys('ChromeDriver')
search_box.submit()
time.sleep(5) # Let the user actually see something!
driver.quit()
答案 6 :(得分:0)
我的解决方案是先在 init 函数中定义驱动程序,然后甚至不会关闭浏览器。
答案 7 :(得分:0)
为防止这种情况发生,请确保您的 driver
变量在您的函数之外定义或定义为全局变量,以防止在函数执行完成后立即对其进行垃圾回收。
在上面的例子中,这可能意味着:
driver = webdriver.Chrome(chrome_options=get_options())
def get_options():
chrome_options = Options()
chrome_options.binary_location="../Google Chrome"
chrome_options.add_argument("disable-infobars")
return chrome_options
def launchBrowser():
driver.get("http://www.google.com/")
launchBrowser()
答案 8 :(得分:-1)
def createSession():
**global driver**
driver = webdriver.Chrome(chrome_driver_path)
driver.maximize_window()
driver.get("https://google.com")
return driver