发送密钥到某个字段
时我有问题driver.findElement(By.xpath("//*[@id=\"login-main\"]/a")).click();
Thread.sleep(1000);
driver.findElement(By.xpath("/html/body/div[2]/ion-nav-view/ion-view/login-popup/ion-pane/ion-content/div/form/label[2]/input")).sendKeys("Example");
我将上下文设置为“driver.context(”WEBVIEW _ ********“);”,我可以点击应用程序中的按钮,但是无法将键放入字段中,它会在第一时间发生,上周它正在运作。 错误是:
Exception in thread "main" org.openqa.selenium.WebDriverException: unknown error: call function result missing 'value'
(Session info: chrome=65.0.3325.109)
(Driver info: chromedriver=2.33.506120
(e3e53437346286c0bc2d2dc9aa4915ba81d9023f),platform=Windows NT 10.0.16299 x86_64) (WARNING: The server did not provide any stacktrace information)
我尝试在CMD中使用“npm install -g chromedriver”更新chromeDriver,但chromeDriver没有更新到2.36这是最新版本。 我查了另外一个问题,他们有同样的问题,但我认为问题是我无法更新chromeDriver
答案 0 :(得分:2)
错误说明了一切:
Exception in thread "main" org.openqa.selenium.WebDriverException: unknown error: call function result missing 'value
(Session info: chrome=65.0.3325.109)
(Driver info: chromedriver=2.33.506120 (e3e53437346286c0bc2d2dc9aa4915ba81d9023f),platform=Windows NT 10.0.16299 x86_64)
您的主要问题是您使用的二进制文件之间的版本兼容性,如下所示:
支持 Chrome v60-62
支持 Chrome v65-66
因此 ChromeDriver 版本( v2.33 )与 Chrome浏览器版本( v65)之间存在明显的不匹配。 0 )
@Test
。根据您的评论,如果您无法升级到 ChromeDriver v2.36 ,则可以采用以下任一策略:
答案 1 :(得分:0)
因此,不确定您使用什么路由来管理驱动程序,但是您需要将--chromedriver-executable参数传递给appium运行。我假设一个新的appium版本或appium-chromdriver npm包将在某个时候发布,但在那之前,请尝试以下方法:
如果您通过命令行启动appium,这就像运行一样简单:
appium --chromedriver-executable=/path/to/chromedriver.exe
(指向2.36 chromedriver可执行文件)
如果您使用AppiumServiceBuilder实例启动appium,则需要添加:
serviceBuilderInstance..withArgument((ServerArgument) () -> "--chromedriver-executable", chromeExecutablePath);
希望这有帮助,它似乎对我有用!
答案 2 :(得分:0)
我找到了一个解决方案,如何解决将Chrome驱动程序更新为2.36的问题 这是下载chromedriver版本,并找出chromedriver"版本的chromedriver"这是由Appium采取的 路径是
C:\Users\Rosen\AppData\Local\Programs\appium-desktop\resources\app\node_modules\appium\node_modules\appium-chromedriver\chromedriver\win\chromedriver.exe
并使用新版本进行更改,以便解决问题并停止告诉我存在问题。