我有一个场景,我需要输入电子邮件并单击提交按钮,但是当网络驱动程序输入电子邮件并单击提交按钮时,尽管网络驱动程序输入了我可以看到的电子邮件,但会抛出错误"电子邮件是必需的"。我在桌面和移动设备上的火狐和 Safari 上都有这个问题。通过一些研究,我能够使用以下JavaScript代码修复Firefox。
JavascriptExecutor js = ((JavascriptExecutor)driver);
js.executeScript("var e=document.getElementById('email'); e.dispatchEvent(new Event('change')); e.dispatchEvent(new Event('blur')); return true;" );
但是相同的代码不适用于真实设备上的移动野生动物园。有人可以帮助解决这个问题吗?
环境
Appium version - 1.6.5 Mac os : 10.12.6 Node.js version - 3.10.10
Mobile platform/version under test: - 10.3 Iphone 6 Real device Using
Appium desktop client Logs: <script
src="https://gist.github.com/mahesh-thuma/f02f6fdc81d48d4c0a16e2dd71412e0c.js"></script>
解决了问题。电子邮件属性从桌面("email
")到移动设备("Email
")略有变化。相应地修改了javascript,我能够继续前进。虽然这仍然是一种解决方法,但可以完成工作。关闭此问题并感谢任何为此投入时间的人。
从"./page"导入页面;
类 雅虎页面扩展页面 {/** * 定义元素 */
get searchInput() { return browser.element('#yschsp'); }
get searchButton() { return browser.element('//div[@class="mag-glass"]'); }
get resultsList() { return browser.element('#results'); }
/**
* define or overwrite page methods
*/
open () {
super.open('https://search.yahoo.com') //provide your additional URL if any. this will append to the baseUrl to form complete URL
browser.pause(1000);
}
enterText (item) {
this.searchInput.clearElement();
this.searchInput.setValue(item);
}
search () {
this.searchButton.click();
}
isSearched () {
this.resultsList.waitForVisible(1000);
return this.resultsList.isVisible();
}
}
导出默认的新雅虎页面();enter code here