chromedriver.exe linux运行
时间: 2023-09-22 08:07:15 浏览: 37
很抱歉,我不太明白您的问题。chromedriver.exe 是一个 Windows 上运行的 Chrome 浏览器驱动程序,而 Linux 上可以使用 chromedriver 或 ChromeDriverLinux 来驱动 Chrome 浏览器。如果您需要在 Linux 上运行 Chrome 浏览器驱动程序,请确保已经安装了适当的版本,并按照相应的文档进行配置和使用。
相关问题
Traceback (most recent call last): File "cesu.py", line 15, in <module> driver = webdriver.Chrome(executable_path=chromedriver_path, chrome_options=chrome_options) File "C:\python27\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 62, in __init__ self.service.start() File "C:\python27\lib\site-packages\selenium\webdriver\common\service.py", line 71, in start os.path.basename(self.path), self.start_error_message) selenium.common.exceptions.WebDriverException: Message: 'chromedriver.exe' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home Exception AttributeError: "'Service' object has no attribute 'process'" in <bound method Service.__del__ of <selenium.webdriver.chrome.service.Service object at 0x0000000002E21CC0>> ignored
这个错误提示说明 ChromeDriver 需要在系统的 PATH 环境变量中才能被正确找到。你可以尝试以下解决方法:
1. 将 ChromeDriver 的路径添加到系统的 PATH 环境变量中:
- 在 Windows 上,打开“控制面板” -> “系统和安全” -> “系统” -> “高级系统设置” -> “环境变量”。在“系统变量”部分找到名为“Path”的变量,点击编辑,然后在变量值的末尾添加 ChromeDriver 的路径(例如:`C:\path\to\chromedriver`)。
- 在 macOS 或 Linux 上,打开终端并编辑 `~/.bash_profile` 文件(或 `~/.bashrc`、`~/.zshrc` 等),添加以下行:`export PATH=$PATH:/path/to/chromedriver`,然后保存文件并运行 `source ~/.bash_profile`(或对应的文件)。
2. 在代码中直接指定 ChromeDriver 的绝对路径:
```python
chromedriver_path = 'C:/path/to/chromedriver.exe' # Windows
chromedriver_path = '/path/to/chromedriver' # macOS / Linux
```
使用其中一种方法将 ChromeDriver 的路径正确设置后,再次运行代码应该可以解决这个问题。
options = webdriver.ChromeOptions() options.add_argument('--ignore-certificate-errors') options.add_experimental_option('excludeSwitches', ['enable-automation']) options.add_argument("--disable-blink-features=AutomationControlled") options.add_argument('--disable-gpu') # 谷歌文档提到需要加上这个属性来规避bug options.add_argument('blink-settings=imagesEnabled=false') # 不加载图片, 提升速度 # options.add_argument('--headless') # 浏览器不提供可视化页面. linux下如果系统不支持可视化不加这条会启动失败 options.binary_location = './chrome-win/chrome.exe' driver_path = Service("chromedriver.exe") driver = webdriver.Chrome(service=driver_path, options=options) # 打开网站 print('正在登录!') driver.get('http://www.weather.com.cn/jiangsu/index.shtml'),from PySide2.QtCore import * from PySide2.QtWidgets import * from PySide2.QtWebEngineWidgets import * class TabWidget(QTabWidget): def __init__(self, *args, **kwargs): QTabWidget.__init__(self, *args, **kwargs) url = QUrl("https://www.163.com") view = HtmlView(self) view.load(url) ix = self.addTab(view, "加载中 ...") self.resize(800, 600) class HtmlView(QWebEngineView): def __init__(self, *args, **kwargs): QWebEngineView.__init__(self, *args, **kwargs) self.tab = self.parent() def createWindow(self, windowType): if windowType == QWebEnginePage.WebBrowserTab: webView = HtmlView(self.tab) ix = self.tab.addTab(webView, "加载中 ...") self.tab.setCurrentIndex(ix) return webView return QWebEngineView.createWindow(self, windowType) if __name__ == "__main__": import sys app = QApplication(sys.argv) main = TabWidget() main.show() sys.exit(app.exec_()),把这两段代码整合到一起。
把这两段代码整合到一起可能会有一些问题,因为它们是两个不同的功能:一个是使用 Selenium 自动化测试工具打开天气网站,另一个是使用 PySide2.QtWebEngineWidgets 模块创建一个带有选项卡的窗口并在其中加载网页。如果你想在 PySide2 应用程序中使用 Selenium,你需要使用 PySide2.QtCore.QProcess 模块来启动一个独立的进程来运行 Selenium 脚本,并使用 PySide2.QtCore.QProcess.readyReadStandardOutput() 来读取输出。以下是一个简单的示例代码,可以帮助你开始使用 Selenium 在 PySide2 中自动化测试网页:
```python
from PySide2.QtCore import *
from PySide2.QtWidgets import *
from PySide2.QtWebEngineWidgets import *
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
class TabWidget(QTabWidget):
def __init__(self, *args, **kwargs):
QTabWidget.__init__(self, *args, **kwargs)
self.setup_browser()
self.load_pages()
def setup_browser(self):
options = Options()
options.add_argument('--ignore-certificate-errors')
options.add_experimental_option('excludeSwitches', ['enable-automation'])
options.add_argument("--disable-blink-features=AutomationControlled")
options.add_argument('--disable-gpu')
options.add_argument('blink-settings=imagesEnabled=false')
options.binary_location = './chrome-win/chrome.exe'
driver_path = Service("chromedriver.exe")
self.driver = webdriver.Chrome(service=driver_path, options=options)
def load_pages(self):
self.load_page("http://www.weather.com.cn/jiangsu/index.shtml", "天气网站")
self.load_page("https://www.163.com", "网易新闻")
def load_page(self, url, title):
view = HtmlView(self)
view.load(QUrl(url))
ix = self.addTab(view, title)
self.setCurrentIndex(ix)
class HtmlView(QWebEngineView):
def __init__(self, *args, **kwargs):
QWebEngineView.__init__(self, *args, **kwargs)
self.tab = self.parent()
def createWindow(self, windowType):
if windowType == QWebEnginePage.WebBrowserTab:
webView = HtmlView(self.tab)
ix = self.tab.addTab(webView, "加载中 ...")
self.tab.setCurrentIndex(ix)
return webView
return QWebEngineView.createWindow(self, windowType)
if __name__ == "__main__":
import sys
app = QApplication(sys.argv)
main = TabWidget()
main.show()
sys.exit(app.exec_())
```
这个例子中,我们在 TabWidget 类的构造函数中调用了 setup_browser() 和 load_pages() 方法。在 setup_browser() 方法中,我们使用 Selenium 的 Options 类来设置 Chrome 浏览器的选项,并创建一个 ChromeDriver 对象。在 load_pages() 方法中,我们调用 load_page() 方法来加载每个网页。在 load_page() 方法中,我们创建一个 HtmlView 对象并调用它的 load() 方法来加载网页。我们还将 HtmlView 对象添加到 TabWidget 中,并将选项卡的标题设置为网页的标题。