[我正在测试基于Hybrid Application Canvas的Android Phone应用程序,我必须测试的大多数功能都是基于Canvas的,而我唯一的方法就是使用JavaScript从Python脚本中调用。
执行Javascript之前,我通过使用设置上下文将Phones本机视图转换为Web视图
def set_current_context(self, num_ctx):
self.driver.switch_to.context(self.driver.contexts[int(num_ctx)])
def set_serial(self, android_serial):
desired_caps = self.getDevice(android_serial)
self.driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
return self.driver
[“。document.title”或“ window.xyz”之类的基本JavaScript可以正常工作并执行某些操作。
现在;如果我想获取页面信息(以前使用夜视仪完成过)
this.browser.page.YourPage(); // Nightwatch javascript
但是如果我直接发送上述命令,则会出现错误JavascriptException: Message: javascript error: Cannot read property 'page' of undefined
def direct_script(self, script, *args):
print(script, *args)
self.driver.execute_script("$(document).ready (function (){ this.browser.page.YourPage() });", *args)
我从this.browser
返回undefined
的浏览器控制台中手动进行检查。
因此,我认为应该以某种方式传递可以在其上运行命令的浏览器实例。
this.browser
不可用。您需要通过page.YourPage();
或driver
做execute_script
尝试做的事情。