将 python selenium 用于 Microsoft Edge

Wol*_*lfy 6 python browser testing selenium-webdriver microsoft-edge

我正在尝试将 pythons selenium 用于 Microsoft Edge,但我不断收到此错误:

WebDriverException:消息:未知错误:找不到 Microsoft Edge 二进制文件

我下载了最新版本的边缘驱动程序。这是我的代码:

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) 
Run Code Online (Sandbox Code Playgroud)

小智 7

这篇文章现在已经很老了,但希望我可以帮助任何将来偶然发现同样问题的人!

问题是您使用了错误的网络驱动程序。Edge 存在两个不同的版本,在两个不可互换的引擎上实现:Chromium Edge 和 EdgeHTML(撰写本文时的默认版本)。这两个版本都有一个与之关联的不同网络驱动程序,Chromium Edge 为“msedgedriver.exe”,EdgeHTML 为“MicrosoftWebDriver.exe”。

您正在使用 EdgeHTML 版本的 Edge,同时尝试运行 Chromium Edge Webdriver。Selenium 吐出的“找不到 Microsoft Edge 二进制文件”错误就是由此而来。

幸运的是,安装正确的网络驱动程序很容易。如果您有 Edge 17 或更早版本,可以在此处安装驱动程序。确保下载 EdgeHTML 驱动程序,而不是 Chromium 驱动程序,并将其添加到您的 PATH 中。对于 Edge 18 及更高版本,您无需下载任何内容。只需在命令提示符中运行命令:DISM.exe /Online /Add-Capability /CapabilityName:Microsoft.WebDriver~~~~0.0.1.0


IPo*_*nik 2

WebDriver 找不到您的 MS Edge 路径,您可以尝试卸载并重新安装 Edge。如果它不能帮助将边缘位置添加到您的系统路径或使用 --binary 参数。