EdgeDriver如何实现无头操作
时间: 2023-09-16 09:05:58 浏览: 188
### 回答1:
为了实现EdgeDriver的无头操作,您需要在创建EdgeDriver对象时使用选项设置 `"goog:loggingPrefs" : {"browser" : "ALL"}`。这将禁用浏览器界面,并使您可以在后台执行测试。
例如:
```
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.edge.service import Service as EdgeService
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
caps = DesiredCapabilities.EDGE
caps["goog:loggingPrefs"] = {"browser" : "ALL"}
driver = webdriver.Edge(service=EdgeService(executable_path="C:\\webdrivers\\msedgedriver.exe"), desired_capabilities=caps)
driver.get("https://www.example.com")
driver.find_element(By.NAME, "q").send_keys("selenium", Keys.RETURN)
driver.quit()
```
请注意,您还需要在系统上安装Microsoft Edge浏览器以及对应的WebDriver驱动程序。
### 回答2:
EdgeDriver是Selenium的一部分,用于模拟浏览器自动化测试。实现无头操作意味着在后台运行浏览器而不显示界面。然而,EdgeDriver本身不支持无头操作。但是,我们可以借助一些工具来实现该功能。
一个可行的方法是使用Headless模式运行Edge浏览器。这需要安装一个名为Xvfb的虚拟X服务器,并将其与EdgeDriver一起使用。Xvfb可以在Linux和Mac上运行。
以下是在Linux系统上使用EdgeDriver实现无头操作的步骤:
1. 安装Xvfb:
```
sudo apt-get install xvfb
```
2. 启动Xvfb:
```
Xvfb :99 -ac &
export DISPLAY=:99
```
3. 下载并安装EdgeDriver,确保EdgeDriver可执行文件的路径被添加到系统的环境变量中。
4. 编写代码,使用Selenium和EdgeDriver进行测试。在创建EdgeDriver实例时,使用`EdgeOptions`类设置无头模式。
```java
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.edge.EdgeDriver;
import org.openqa.selenium.edge.EdgeOptions;
public class EdgeHeadlessExample {
public static void main(String[] args) {
EdgeOptions options = new EdgeOptions();
options.setHeadless(true);
WebDriver driver = new EdgeDriver(options);
// 进行测试...
driver.quit();
}
}
```
这样,EdgeDriver将在无页面模式下运行,所有的操作将在后台进行,而不会打开浏览器窗口。
需要注意的是,无头操作可能在一些特殊情况下无法正常工作,特别是涉及到某些网页上的JavaScript动态交互时。因此,对于一些需要真实浏览器环境的测试场景,我们仍然推荐使用常规的有头模式运行 EdgeDriver。
阅读全文