我运行的是windows10、internetexplorer11、python3.6、selenium3.4.3和iedriverserver3.5。我试图用下面的代码打开IE。在
from selenium import webdriver
import os
driverLocation = "C:\\Users\\JD\\PycharmProjects\\Lib\\IEDriverServer.exe"
os.environ["webdriver.ie.driver"] = driverLocation
driver = webdriver.Ie(driverLocation)
google = "https://google.com"
driver.get(google)
输出:
^{pr2}$任何帮助都将不胜感激谢谢。在
更新: 我把这个加到我以前的代码里
capabilities = DesiredCapabilities.INTERNETEXPLORER
print(capabilities["platform"])
print(capabilities["browserName"])
输出:
WINDOWS
internet explorer
File "C:\Users\JD\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 194, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: Invalid capabilities in alwaysMatch: unknown capability named platform
更新: 我也尝试过设置功能,但仍然收到相同的错误:“未知功能名为platform
caps = DesiredCapabilities.INTERNETEXPLORER.copy()
caps["platform"] = "WINDOWS"
caps["browserName"] = "internet explorer"
caps["requireWindowFocus"] = True
browser = webdriver.Ie(capabilities=caps,
executable_path="C:\\Users\\JD\\PycharmProjects\\Lib\\IEDriverServer.exe")
browser.get("https://www.facebook.com/")
我有好几天都有同样的问题。 我的解决方法是从}键
capabilities
字典中删除platform
和{示例:
到目前为止,我的猜测是,之所以会出现这种错误,是因为w3c的caps是作为唯一正确的功能传递的。在回溯中可以看到:
当你点击它,你会看到:
^{pr2}$正如您所看到的,here}uw3c\u功能名称与我们传递的值不同。 我们将“WINDOWS”传递为“platformName”,而_W3C_CAPABILITY_NAMES有“platformName”,只接受小写字母。“版本”键也一样。在
所以我们添加了无法识别的功能。在
这个解决方案并不是完美的,我能够在不删除一些功能的情况下在selenium java中启动IE。在
编辑:另一个解决方案可以在Grimlek注释中找到here,它实际上是说您应该从}\网络驱动程序.py). 代码如下:
start_session(self, capabilities, browser_profile=None)
(从远程)删除{这样就不需要从功能中删除密钥。在
另一个编辑:我刚刚将我的selenium python从3.4.3更新到3.5.0,不再需要修改功能了。在
相关问题 更多 >
编程相关推荐