Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Не открывается сайт через Chrome в Android устройстве при тестировании.

selenium
java
android
appium
testng
Теги: #<Tag:0x00007f7b6329e948> #<Tag:0x00007f7b6329e808> #<Tag:0x00007f7b6329e6c8> #<Tag:0x00007f7b6329e588> #<Tag:0x00007f7b6329e448>

(Maha Dev) #1

Я пишу на Java тест сайта. Мне надо проверить его через браузер в Android.

Вот мой код:

public class AndroidTest {
    DesiredCapabilities cap;

    @BeforeClass
    public void setup() {
        cap = new DesiredCapabilities();
        cap.setCapability(MobileCapabilityType.BROWSER_NAME, BrowserType.CHROME);
        cap.setCapability(MobileCapabilityType.PLATFORM, Platform.ANDROID);
        cap.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");
        cap.setCapability(MobileCapabilityType.DEVICE_NAME, "JVYTCEPRQOSONVFI");
        cap.setCapability(MobileCapabilityType.VERSION, "4.4.2");
    }

    @Test
    public void start() {
        try {
            WebDriver android = new AndroidDriver(new URL("http://127.0.0.1:4727/wd/hub"), cap);
            android.get("http://www.facebook.com");
        } catch (MalformedURLException e) {
            e.printStackTrace();
        }
    }
}

Запускаю Appium, запускаю код, телефон подключен через USB, открывается в телефоне Хром, начинает грузиться что-то а в строке для ссылки пишет: data;,
После этого браузер просто закрывается, снова открывается, снова грузиться а там вместо ссылки пишет " data;, " и снова закрывается. Вот так раза 3-4 и после в Java выходит ошибка:

org.openqa.selenium.SessionNotCreatedException: A new session could not be created. (Original error: A new session could not be created. (Original error: session not created exception
from unknown error: Runtime.executionContextCreated has invalid 'context': {"auxData":{"frameId":"15235.1","isDefault":true},"id":1,"name":"","origin":"://"}
  (Session info: chrome=56.0.2924.87)
  (Driver info: chromedriver=2.18.343845 (73dd713ba7fbfb73cbb514e62641d8c96a94682a),platform=Windows NT 6.1 SP1 x86_64))) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 0 milliseconds
Build info: version: '3.3.1', revision: '5234b325d5', time: '2017-03-10 09:10:29 +0000'
System info: host: 'NAME', ip: '192.168.0.101', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_74'
Driver info: driver.version: AndroidDriver

и т. д. Длинный длинный код. Не хочет он открывать, что делать? Телефон у меня Lenovo s898t+


(Nmcreature) #2

для начала переключиться на WEBVIEW, примерно так:

Set<String> contexts = driver.getContextHandles();
for (String context : contexts) {
    if(context.contains("WEBVIEW")) {
        driver.context(context);
        break;
    }
 }

(Maha Dev) #3

Я добавил к остальным capability:

cap.setCapability("chromedriverExecutable", "С:\\... полный путь к драйверу");

и заработало.