python selenium driver.get() 为 google webdriver 打开一个空白页面,而不是 Windows 中的实际 url
python selenium driver.get() opens a blank page for google webdriver instead of the actual url in Windows
我有一个 Windows 10、64 位系统。
我下面的简单 selenium 代码在没有 exception/error 的情况下运行,但打开一个空白页面而不是打开 google.com
并且它与任何 url 的行为相同,而不仅仅是 google.com
:
import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
#Chrome browser version 91.0.4472.77
# Crome-Driver version used: 91.0.4472.19 <--latest
url='https://www.google.co.in/'
driver_path='F:\Path\chromedriver_win32\chromedriver.exe'
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--ignore-certificate-errors')
chrome_options.add_argument('--ignore-ssl-errors')
#chrome_options.add_argument("--headless")
driver = webdriver.Chrome(executable_path= driver_path, options= chrome_options)
driver.get(url)
我得到的输出:
Screenshot
有人能告诉我,这是怎么回事吗?我以前写过 selenium 代码(虽然在不同的机器上),但是从来没有遇到过这样的基本问题,并且不知道如何解决它,因为代码根本没有报告错误。
我确实查看了其他一些发布的相关问题,但也没有看到任何 answers/solutions 发布:
Selenium webdriver loads a blank page instead of the target URL
开始使用 selenium 时非常容易犯的错误,解决此问题的方法是在程序的前面添加 driver.get(url)
下面是对我有用的代码。
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
class user_login:
def __init__(self,path,url):
self.path = path
self.url = url
self.setup = None
def chrome_setup(self):
try:
options = webdriver.ChromeOptions()
options.add_argument("start_maximized")
options.binary_location = r"C:\Program Files\Google\Chrome\Application\chrome.exe"
self.chrome_driver = webdriver.Chrome(executable_path=self.path, options=options)
self.chrome_driver.implicitly_wait(20)
print("Chrome Driver Loaded")
except Exception as e:
print("exception is: " + str(e))
else:
self.setup = True
self.load_url()
def load_url(self):
if self.setup is True:
try:
print("Loading URL")
self.chrome_driver.get(self.url)
except Exception as e:
print(str(e))
if __name__ == "__main__":
url='/path/to/my/url'
driver_path='/path/to/my/chromedriver.exe'
obj = user_login(driver_path,url)
obj.chrome_setup()
请注意,我将代码结构化为 classes
和 methods
,只是为了提高可读性,这将有助于我调试代码。
但主要的变化是我必须明确提及 chrome.exe
的二进制位置,即 chrome 浏览器的 exe 文件。这是代码行:options.binary_location = r"C:\Program Files\Google\Chrome\Application\chrome.exe"
implicit wait
是可选的,但这是一个很好的做法,因此我添加了它:self.chrome_driver.implicitly_wait(20)
。但是没有它也只是上面的代码更改,使代码工作起来很有魅力。
我有一个 Windows 10、64 位系统。
我下面的简单 selenium 代码在没有 exception/error 的情况下运行,但打开一个空白页面而不是打开 google.com
并且它与任何 url 的行为相同,而不仅仅是 google.com
:
import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
#Chrome browser version 91.0.4472.77
# Crome-Driver version used: 91.0.4472.19 <--latest
url='https://www.google.co.in/'
driver_path='F:\Path\chromedriver_win32\chromedriver.exe'
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--ignore-certificate-errors')
chrome_options.add_argument('--ignore-ssl-errors')
#chrome_options.add_argument("--headless")
driver = webdriver.Chrome(executable_path= driver_path, options= chrome_options)
driver.get(url)
我得到的输出:
Screenshot
有人能告诉我,这是怎么回事吗?我以前写过 selenium 代码(虽然在不同的机器上),但是从来没有遇到过这样的基本问题,并且不知道如何解决它,因为代码根本没有报告错误。
我确实查看了其他一些发布的相关问题,但也没有看到任何 answers/solutions 发布:
Selenium webdriver loads a blank page instead of the target URL
开始使用 selenium 时非常容易犯的错误,解决此问题的方法是在程序的前面添加 driver.get(url)
下面是对我有用的代码。
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
class user_login:
def __init__(self,path,url):
self.path = path
self.url = url
self.setup = None
def chrome_setup(self):
try:
options = webdriver.ChromeOptions()
options.add_argument("start_maximized")
options.binary_location = r"C:\Program Files\Google\Chrome\Application\chrome.exe"
self.chrome_driver = webdriver.Chrome(executable_path=self.path, options=options)
self.chrome_driver.implicitly_wait(20)
print("Chrome Driver Loaded")
except Exception as e:
print("exception is: " + str(e))
else:
self.setup = True
self.load_url()
def load_url(self):
if self.setup is True:
try:
print("Loading URL")
self.chrome_driver.get(self.url)
except Exception as e:
print(str(e))
if __name__ == "__main__":
url='/path/to/my/url'
driver_path='/path/to/my/chromedriver.exe'
obj = user_login(driver_path,url)
obj.chrome_setup()
请注意,我将代码结构化为 classes
和 methods
,只是为了提高可读性,这将有助于我调试代码。
但主要的变化是我必须明确提及 chrome.exe
的二进制位置,即 chrome 浏览器的 exe 文件。这是代码行:options.binary_location = r"C:\Program Files\Google\Chrome\Application\chrome.exe"
implicit wait
是可选的,但这是一个很好的做法,因此我添加了它:self.chrome_driver.implicitly_wait(20)
。但是没有它也只是上面的代码更改,使代码工作起来很有魅力。