如何禁用没有Id和Name的桌面应用程序的文本字段

时间:2018-04-20 11:55:25

标签: javascript java selenium selenium-webdriver

我使用winiumDriver进行桌面应用。我想在文本字段中填写一次值后禁用文本字段。

//open desktop application

WiniumDriver driver = null;

DesktopOptions option = new DesktopOptions();

option.setApplicationPath("Desktop application path");

driver = new WiniumDriver(new URL("http://localhost:9999"), option);

WebElement window = driver.findElementByClassName("Qt5QWindowIcon");

List<WebElement> list = window.findElements(By.className(""));

//Send values to fields

list.get(10).sendKeys("USERNAME");

//javaScript code to disable

JavascriptExecutor javascript = (JavascriptExecutor) driver;
String todisable = "document.getElementsByName('')[10].setAttribute('disabled', '');";
javascript.executeScript(todisable);

//获得此感知

线程中的异常&#34; main&#34; org.openqa.selenium.WebDriverException:未知的脚本命令&#39; document.getElementsByClassName(&#39;&#39;)[10] .setAttribute(&#39; disabled&#39;,&#39;&#39;);&#39;。有关支持的命令,请参阅https://github.com/2gis/Winium.Desktop/wiki/Command-Execute-Script。 (警告:服务器未提供任何堆栈跟踪信息) 命令持续时间或超时:12毫秒 构建信息:版本:&#39; 2.48.2&#39;,修订版:&#39; 41bccdd10cf2c0560f637404c2d96164b67d9d67&#39;,时间:&#39; 2015-10-09 13:08:06&#39; 系统信息:主持人:&#39; DESKTOP-JL5UPRJ&#39;,ip:&#39; 192.168.0.112&#39;,os.name:&#39; Windows 10&#39;,os.arch:&# 39; amd64&#39;,os.version:&#39; 10.0&#39;,java.version:&#39; 1.8.0_131&#39; 驱动程序信息:org.openqa.selenium.winium.WiniumDriver

1 个答案:

答案 0 :(得分:0)

桌面应用程序不使用JavaScript。 Winium的executeScript实现专门支持几个专有命令,如错误消息中的链接所述,而不是实际执行JavaScript。