发送密钥时出现以下错误。
结果讯息:
System.InvalidOperationException : unknown error: call function result missing 'value'
(Session info: chrome=65.0.3325.146)
(Driver info: chromedriver=2.33.506120 (e3e53437346286c0bc2d2dc9aa4915ba81d9023f),platform=Windows NT 10.0.14393 x86_64)
我已将Chrome驱动程序更新为2.36但我的代码仍在搜索2.33?
有什么想法吗?
答案 0 :(得分:112)
我收到同样的错误,请下载最新的ChromeDriver版本和/或更新Chrome浏览器版本,它将正常运行:)
https://chromedriver.storage.googleapis.com/index.html?path=2.36/
答案 1 :(得分:22)
将Google Chrome浏览器更新为版本65.0.3325.146(官方版本)(64位)后,我也遇到了同样的错误
在将值发送到输入字段时,这是错误消息...
selenium.common.exceptions.WebDriverException: Message: unknown error: call function result missing 'value'
使用Chromedriver 2.32和Google Chrome 65.0
当我对此进行一些研究时,我在Google Chrome v65更改日志上发现了最近的commit,这有助于我解决此问题。
<强>解决方案:强>
下载并配置最新的chromedriver(v2.36)。 有关配置chromedriver(在Ubuntu上),请按照以下步骤操作...
export PATH = $ PATH:/ usr / local / bin
chromedriver --version
它会显示您刚刚安装的chromedriver版本。
注意:如果已安装并配置了chromedriver,则只需替换现有的驱动程序文件,如果您不知道Chromedriver二进制文件已存储在何处,请尝试使用以下命令查找该文件
sudo find -H / -type f -iname chromedriver
答案 2 :(得分:13)
这是因为Chrome浏览器版本从64.xx更新到65.xx
现在您有2个选项可以成功运行测试。
将Chrome浏览器降级到之前的版本,并使用现在的旧版chromedriver。
使用更新的Chrome浏览器将您的Chromedriver升级到2.36版本。
访问https://chromedriver.storage.googleapis.com/index.html?path=2.36并下载新的chromedriver。
选项2更好。
答案 3 :(得分:12)
将ChromeDriver.exe替换为最新版本..可以从Google轻松下载。
另外,要自动完成,您可以使用webdriver manager,如下面链接所述 - What is Browser Binary Manager how to use it for Selenium
或参考git项目 - https://github.com/bonigarcia/webdrivermanager#webdrivermanager-as-java-dependency
答案 4 :(得分:10)
需要更新chromedriver:
在控制台中,运行:chromedriver-update 2.36
答案 5 :(得分:8)
错误说明了一切:
System.InvalidOperationException : unknown error: call function result missing 'value'
(Session info: chrome=65.0.3325.146)
(Driver info: chromedriver=2.33.506120
错误显然是抱怨 InvalidOperationException
您的主要问题是您使用的二进制文件之间的版本兼容性,如下所示:
支持 Chrome v60-62
支持 Chrome v64-66
因此 ChromeDriver 版本( v2.33 )与 Chrome浏览器版本( v65)之间存在明显的不匹配。 0 )
@Test
。答案 6 :(得分:5)
如果你在Mac上:
brew upgrade selenium-server-standalone
brew upgrade chromedriver
如果未安装以上两个:
brew install selenium-server-standalone
brew install chromedriver
答案 7 :(得分:3)
我正在运行Protractor并遇到了同样的问题。
我的案例中的解决方案相当简单。
$ npm update protractor -g
$ webdriver-manager update
答案 8 :(得分:2)
如果您使用最新稳定的Google Chrome(例如67),我建议:
brew uninstall chromedriver
brew tap homebrew/cask
brew cask install chromedriver
这些命令将卸载您当前的chromedriver,检查更新并安装最新发现的(例如2.40)。
答案 9 :(得分:1)
Use xpaths instead of class names to locate elements
在更新chrome及其驱动程序之后,它根本没有帮助我! 我不知道这有什么意义,但是当我用xpath替换类名时,它对我有用。这是xpath,我曾经使用python自动发送whatsapp消息。
driver.find_element_by_xpath('//*[@id="main"]/footer/div[1]/div[2]/div')
以前我正在使用
driver.find_element_by_class_name('Some class Name Here')
答案 10 :(得分:0)
正如其他人所说,最新的chromedriver为我做了伎俩。如果您手动下载驱动程序并想告诉appium使用新的chromedriver,您可以通过以下命令执行此操作:
appium --chromedriver-executable /path/to/driver/chromedriver ....
答案 11 :(得分:0)
如果这可能对某人有帮助,我还需要一个额外的步骤:
我在MacOS X上。我做了
brew upgrade chromedriver
bundle exec chromedriver-upgrade
我安装了chromedriver-helper gem,但它被隐藏并需要“bundle exec”前缀或shell无法找到命令。
以上解决了我的问题。
答案 12 :(得分:0)
在我的情况下,团队我在点硒到我们拥有的特定chromedriver文件。为了让Selenium使用更新的chromedriver,我首先使用brew安装它,然后创建一个符号链接指向Selenium寻找它:
STRSTARTS
答案 13 :(得分:0)
如果您使用的是gulp-protractor
插件,请确保也进行更新。
答案 14 :(得分:0)
我不知道您是否仍在进行此操作,但是我收到了类似的错误消息。我在PATH中安装了最新版本的chromedriver,并且Google Chrome已更新。我在Windows 10 x64位上运行Python 3.6。我正在尝试从网页的下拉菜单中选择一个值。奇怪的是,它将正确选择下拉列表值,并且页面会被很好地更新,但是无论如何我都会收到该愚蠢的错误,并且我的脚本将冻结。所以我只是为其创建了一个异常错误处理程序,因为就像我说的那样,它正确选择了下拉列表值,所以我只想绕过该愚蠢的错误消息:
# select by value
try:
select.select_by_value('100')
except:
pass
希望有人发现这有帮助。
答案 15 :(得分:0)
问题是由于chromedriver和chrome浏览器版本不匹配。 下面的链接指定支持chrome浏览器版本的chromedriver版本。
答案 16 :(得分:0)
我在Windows环境中使用Selenium运行Protractor(webdriver-manager),我必须执行以下操作:
webdriver-manager update --versions.chrome="2.36"
(这会将新的Chromedriver下载到正确的路径,但未在量角器中启用。)%userprofile%\AppData\Roaming\npm\node_modules\protractor\config.json
并将chromedriver
值从2.32
更改为2.36
。chromedriver_2.32.exe
删除旧的%userprofile%\AppData\Roaming\npm\node_modules\protractor\selenium
以获得良好的衡量标准(不确定是否需要)。或强>
当需要另一个Chromedriver更新时,我无法再以这种方式更新。配置设置仍然需要旧的路径和文件名,我无法确定在哪里更改该设置。所以我只是将最新的chromedriver重命名为“chromedriver.exe”并将其粘贴在C:\ Windows \ system32(始终由PATH引用)中。原油,但有效。