Передача экземпляра браузера WebDriver в JavaScript в Appium - PullRequest
0 голосов
/ 05 ноября 2019

Я тестирую приложение для Android Phone, которое основано на Hybrid Application Canvas, большинство функций, которые мне нужно протестировать, основаны на Canvas, и единственный способ, которым я могу, - это использовать JavaScript для вызова из скриптов Python.

Перед выполнением Javascript я преобразую собственный вид телефонов в веб-представление, используя set Contexts

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

Базовые сценарии Java, такие как «document.title» или «window.xyz», работают нормально и выполняют определенные действия.

Теперь;Если я хочу получить информацию о странице (что ранее было сделано с помощью ночных часов)

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.

Так что, на мой взгляд, я думаю, что должен быть какой-то способ передать экземпляр браузера, на котором я могу запускать команды.

...