appium / appium-for-mac

[deprecated] Application for automating a mac app with JSON wire protocol
Apache License 2.0
193 stars 70 forks source link

Unable to get page source for Calculator. #68

Open padmakarsrinivas opened 5 years ago

padmakarsrinivas commented 5 years ago

I am unable to get page source for Calculator.

I have installed AppiumforMac and have checked it under the accessibility tab.

Following is my code.

package com.appium.test;

import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.Assert;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;

import com.appium.base.BaseTest;

import io.appium.java_client.AppiumDriver;

public class MacNativeAppTest extends BaseTest {

    public static AppiumDriver<?> driver;

    @BeforeTest
    public void setup( ){
        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability("platformName","Mac");
        capabilities.setCapability("deviceName", "Mac");
        capabilities.setCapability("app", "Calculator");
        capabilities.setCapability("newCommandTimeout", 5000);
        driver = new AppiumDriver<>(getServiceUrl(), capabilities);
    }

    @AfterTest
    public void tearDown( ) 
    {
        driver.quit();
    }

    @Test
    public void test() 
    {
        System.out.println("____________________________________________");
        System.out.println(driver.getPageSource());
        System.out.println("____________________________________________");
        driver.get("Calculator");
        driver.findElementByXPath("/AXApplication[@AXTitle='Calculator']/AXWindow[0]/AXGroup[1]/AXButton[@AXTitle='three']").click();
    }

}

Following is the output i am getting.

[35m[HTTP] 
____________________________________________
[HTTP] --> GET /wd/hub/session/c37e5fdc-2a09-4f2f-b7cc-37fa9d4cd832/source
[HTTP] {}
[W3C (c37e5fdc)] Driver proxy active, passing request on via HTTP proxy
[debug] [WD Proxy] Matched '/wd/hub/session/c37e5fdc-2a09-4f2f-b7cc-37fa9d4cd832/source' to command name 'getPageSource'
[debug] [WD Proxy] Proxying [GET /wd/hub/session/c37e5fdc-2a09-4f2f-b7cc-37fa9d4cd832/source] to [GET http://127.0.0.1:4622/wd/hub/session/5Sn4DeP3/source] with body: {}
[debug] [WD Proxy] Got response with status 200: "{\n  \"status\" : 0,\n  \"sessionId\" : \"5Sn4DeP3\",\n  \"value\" : \"<?xml version=\\\"1.0\\\"?>\\n\"\n}"
[WD Proxy] Replacing sessionId 5Sn4DeP3 with c37e5fdc-2a09-4f2f-b7cc-37fa9d4cd832
[HTTP] <-- GET /wd/hub/session/c37e5fdc-2a09-4f2f-b7cc-37fa9d4cd832/source 200 12 ms - 99
[HTTP] 
<?xml version="1.0"?>

____________________________________________

Please let me know where have I gone wrong.

bumbu commented 3 years ago

Had the same issue (aka return was coming empty). The issue was resolved when I gave accessibility permissions to my terminal (iTerm in my case). Permission request popped-up at some point, but I missed and it got hidden on my screen.

Hopefully that helps.