chromium和selenium
时间: 2023-11-09 10:03:02 浏览: 234
Chromium是一个开源的浏览器项目,而Selenium是一个自动化测试工具,可以用于模拟用户在浏览器中的操作。Selenium可以使用Chromium作为浏览器引擎来执行测试。
Chromium和Selenium的关系是,Selenium可以使用Chromium作为浏览器引擎来执行测试。这样做的好处是,Chromium是一个开源的浏览器项目,可以提供更好的性能和更好的兼容性,同时也可以避免使用其他浏览器时可能会遇到的一些问题。
相关问题
selenium 配置Chromium
要配置Selenium使用Chromium,您需要确保Chromium和Chromedriver版本一致,并按照以下步骤进行操作:
1. 下载Chromium:您可以从https://chromium.woolyss.com/下载Chromium。确保下载与您的Chromedriver版本匹配的Chromium。
2. 下载Chromedriver:您可以从http://chromedriver.storage.googleapis.com/index.html或https://npm.taobao.org/mirrors/chromedriver/下载Chromedriver。同样,请确保下载与您的Chromium版本匹配的Chromedriver。
3. 创建运行文件:在项目的/src目录下创建一个run.ts文件,并添加以下代码:
```typescript
import { Options, ServiceBuilder, setDefaultService } from "selenium-webdriver/chrome";
import { Builder } from 'selenium-webdriver';
let chromePath: string = "./chrome/chrome.exe"; // Chromium 中的 chrome可执行未见的存放路径
let chromeWebdriverPath:string = "./chrome/chromedriver.exe"; // chromedriver.exe文件按存放存进
setDefaultService(new ServiceBuilder(chromeWebdriverPath).build()); // 配置chromewebdriver路径
const driver = new Builder().forBrowser("chrome")
.setChromeOptions(new Options().setChromeBinaryPath(chromePath)).build(); // 创建driver实例并指定运行chrome的路径
driver.get("https://www.baidu.com");
driver.findElement({id:"kw"}).sendKeys("你好");
driver.findElement({id:"su"}).click();
driver.quit();
```
4. 构建并执行:在工作区中使用快捷键Ctrl+Shift+B来构建项目文件。然后运行run.js文件,命令为:node .\out\run.js。
这样,您就成功配置了Selenium使用Chromium。
python pyside2 内嵌Chromium浏览器,使用selenium控制
在 PySide2 中内嵌 Chromium 浏览器需要使用 QtWebEngineWidgets 模块,而使用 Selenium 控制浏览器则需要安装相应的浏览器驱动。以下是一个简单的示例代码:
```python
from PySide2.QtCore import QUrl
from PySide2.QtGui import QWindow
from PySide2.QtWidgets import QApplication
from PySide2.QtWebEngineWidgets import QWebEngineView
from selenium import webdriver
from selenium.webdriver.chrome.webdriver import WebDriver
from selenium.webdriver.chrome.options import Options
import sys
import time
class CustomWebEngineView(QWebEngineView):
def __init__(self):
super().__init__()
# 创建一个 Chrome 的 Options 对象
options = Options()
options.add_argument('--disable-gpu')
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
options.add_argument('--headless')
# 创建一个 Chrome 的 WebDriver 对象
self.driver: WebDriver = webdriver.Chrome(options=options)
# 加载页面
self.load(QUrl('https://www.baidu.com'))
def closeEvent(self, event):
# 关闭 WebDriver
self.driver.quit()
super().closeEvent(event)
if __name__ == '__main__':
app = QApplication(sys.argv)
# 创建一个窗口
window = QWindow()
# 创建一个内嵌的 WebEngineView
web_view = CustomWebEngineView()
web_view.setParent(window)
# 显示窗口
window.show()
# 进入事件循环
sys.exit(app.exec_())
```
在上面的示例代码中,首先我们自定义了一个 `CustomWebEngineView` 类,继承自 `QWebEngineView`,在该类的构造函数中创建了一个 Chrome 的 WebDriver 对象,并加载了一个百度首页的页面。
然后我们创建了一个窗口,并将 `CustomWebEngineView` 对象设置为该窗口的子控件。最后调用 `app.exec_()` 进入事件循环,显示窗口。在窗口关闭时,我们需要手动调用 `driver.quit()` 关闭 WebDriver。
需要注意的是,在使用 PySide2 内嵌 Chromium 浏览器时,由于 Chromium 的多进程架构,我们需要在启动 Chrome 的时候禁用 GPU 和沙盒模式。另外,为了避免浏览器窗口弹出,我们使用了 `--headless` 参数。
阅读全文