我正在尝试将pythons硒用于Microsoft Edge,但我一直收到此错误:
WebDriverException: Message: unknown error: cannot find Microsoft Edge binary
我下载了最新版本的边缘驱动程序。这是我的代码:
from selenium import webdriver
from selenium.webdriver.remote import webelement
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions as EC
import pandas as pd
import time
from bs4 import BeautifulSoup
import os
from datetime import datetime
from selenium.webdriver import ActionChains
driver = webdriver.Edge(executable_path = 'C:\\Users\\Downloads\\edgedriver_win32\\msedgedriver.exe')
def get_trulia_estimate(address):
driver.get('https://www.trulia.com/')
print(address)
element = (By.ID, 'homepageSearchBoxTextInput')
WebDriverWait(driver, 10).until(EC.element_to_be_clickable(element)).click()
WebDriverWait(driver, 10).until(EC.element_to_be_clickable(element)).send_keys(address)
search_button = (By.CSS_SELECTOR, "button[data-auto-test-id='searchButton']")
WebDriverWait(driver, 50).until(EC.element_to_be_clickable(search_button)).click()
time.sleep(3)
答案 0 :(得分:2)
这篇文章现在已经很老了,但是希望以后我能为遇到相同问题的任何人提供帮助!
问题是您使用了错误的Webdriver。 Edge有两种不同的版本,在两个不可互换的引擎上实现-Chromium Edge和EdgeHTML(撰写本文时的默认版本)。这两个版本中的每个版本都有一个与之关联的不同Web驱动程序,其中Chromium Edge的名称为“ msedgedriver.exe”,EdgeHTML的名称为“ MicrosoftWebDriver.exe”。
您在尝试运行Chromium Edge Web驱动程序时正在使用EdgeHTML的EdgeHTML版本。 Selenium发出的“找不到Microsoft Edge二进制”错误由此而来。
幸运的是,安装正确的webdriver很容易。如果您具有Edge 17或更早版本,则可以安装驱动程序here。确保下载EdgeHTML驱动程序而不是Chromium驱动程序,并将其添加到PATH中。对于Edge 18及更高版本,您无需下载任何内容。只需在命令提示符下运行命令:DISM.exe /Online /Add-Capability /CapabilityName:Microsoft.WebDriver~~~~0.0.1.0
。
答案 1 :(得分:1)
WebDriver找不到您的MS Edge路径,您可以尝试卸载并重新安装Edge。 如果它不能帮助将Edge位置添加到系统路径或使用--binary参数。
答案 2 :(得分:0)
James L的答案已被完美总结。我拥有Microsoft EdgeHTML 18.17763,因此尝试运行以下命令:
DISM.exe /Online /Add-Capability /CapabilityName:Microsoft.WebDriver~~~~0.0.1.0
此操作成功执行。但是,这次运行代码时,出现错误:
Message =发送HTTP时引发了具有空响应的异常 向远程WebDriver服务器请求URL http://localhost:52109/session。例外状态为 ReceiveFailure,并且消息为:基础连接为 已关闭:接收时发生意外错误。
看起来我们还需要在Windows>>Settings>>Developer Options
中启用开发人员选项,由于我没有管理员权限,因此我目前无法这样做。