首页 > 解决方案 > 在 Hybrid 应用程序中,将 Native 切换为 Webview 后,Selector 不起作用

问题描述

我正在运行 Browserstack 应用程序自动化,其中应用程序包含本地上下文以及 Webview.after 切换本地到 webview ,然后我得到了这个异常。webselector 不工作的地方。

try {
            
            driver = new Android Driver<AndroidElement>(new URL(URL), capabilities);
            System.out.println("APPIUM driver initiated : " + driver);
            ((WebDriver) driver).manage().timeouts().implicitlyWait(20,TimeUnit.SECONDS) ;
            System.out.println(((AppiumDriver<AndroidElement>) driver).getContext());
            ((AppiumDriver<AndroidElement>) driver).context("NATIVE_APP");
             driver.findElementByAccessibilityId("START NOW").click();
            System.out.println("Clicked on Start now");
            ((AppiumDriver<AndroidElement>) driver).context("WEBVIEW");
            System.out.println(((AppiumDriver<AndroidElement>) driver).getContext());
             Thread.sleep(3000);
           driver.findElement(By.id("'studentLogin_userMailId")).sendKeys("sahfgdfgsdfhsdg@gmail.com");
            driver.findElement(By.xpath("studentLoginsubmit")).click();
       Thread.sleep(3000);
       System.out.println(((AppiumDriver<AndroidElement>) driver).getContext());            
                        }
            catch(Exception e) {
                  e.printStackTrace();
                    }
        
                    finally {
                     driver.quit();
                    }
                        
                }
enter code here

得到了这个例外:我试图使用 XPATH ID CSS NAME ,仍然面临这个问题。

org.openqa.selenium.NoSuchElementException:没有这样的元素:无法找到元素:{"method":"id","selector":"'studentLogin_userMailId"}

(会话信息: chrome=89.0.4389.105) (驱动程序信息: chromedriver=89.0.4389.23 (61b08ee2c50024bab004e48d2b1b083cdbdac579-refs/branch-heads/4389@{#294}),platform=Linux 4.1.13-101.fc86641.x86_64) (警告:服务器未提供任何堆栈跟踪信息)命令持续时间或超时:0 毫秒有关此错误的文档,请访问:https ://www.seleniumhq.org/exceptions/no_such_element.html 构建信息:版本:'3.141.59',修订:'e82be7d358',时间:'2018-11-14T08:25:48' 系统信息:主机:'DESKTOP-CROVB78',ip:'192.168.43.130',os .name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '15.0.2' 驱动信息: io.appium.java_client.android.AndroidDriver Capabilities {64bit: false ,acceptSslCert:假,acceptSslCerts:假,adbExecTimeout:120000,appActivity:com.englishhelper.readtome ....,appPackage:com.....,appUrl:bs:// ...,autoWebview:真,自动化名称: UiAutomator2,browserstack.appium_version:1.17.0,browserstack.is_hub_canary:false,browserstack.minOSVersion:6.0,buildName:RTM,bundleID:com.ereadtome ....,bundleId:coe ....,chromeOptions:{w3c:false }, chromedriverPort: 18084, chromedriverPorts: [[18144, 18154]],databaseEnabled: false, detected_language: selenium/3.141.59 (java win..., device: google pixel 3, deviceApiLevel: 29, deviceManufacturer: Google, deviceModel: Pixel 3, deviceName: 8BMX1CPET, deviceOrientation: potrait, deviceScreenDensity: 440, deviceScreenSize : 1080x2160, deviceUDID: 8BMX1CPET, enablePerformanceLogging: false, javascriptEnabled: true, locationContextEnabled: false, mobile: {browser: mobile, version: Google Pixel 3-10.0}, nativeWebScreenshot: true, networkConnectionEnabled: true, newCommandTimeout: 0, new_bucketing: true ,orig_os:android,pixelRatio:2.75,平台:ANDROID,platformName:Android,platformVersion:10,realMobile:true,real_mobile:true,skipServerInstallation:true,statBarHeight:66,systemPort:8204,takeScreenshot:true,udid:8BMX1CPET,uiautomator2ServerLaunchTimeout : 60000, 版本: , viewportRect:{高度:1962,左侧:0,顶部:66,宽度:1080},警告:{},webStorageEnabled:false} 会话 ID:bd62fbded6c4165b7b54ba80b5e6f2c950d5c2e9 *** 元素信息:{Using=id, value='studentLogin_userMailId} at java。 base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:64) at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance (DelegatingConstructorAccessorImpl.java:45) 在 java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500) 在 java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481) 在org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:166) 在 org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode(AbstractHttpResponseCodec.java:80) 在 org.openqa 的 org.openqa.selenium.remote.http.JsonHttpResponseCodec.reconstructValue(JsonHttpResponseCodec.java:40) .selenium.remote.http.AbstractHttpResponseCodec.decode(AbstractHttpResponseCodec.java:44) at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:158) at io.appium.java_client.remote.AppiumCommandExecutor.execute(AppiumCommandExecutor .java:239) 在 io.appium.java_client.DefaultGenericMobileDriver.execute(DefaultGenericMobileDriver.java:41) 在 io.appium.java_client.AppiumDriver 的 org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552)。在 org.openqa.selenium.remote 的 io.appium.java_client.android.AndroidDriver.execute(AndroidDriver.java:1) 处执行(AppiumDriver.java:1)。RemoteWebDriver.findElement(RemoteWebDriver.java:323) 在 io.appium.java_client.DefaultGenericMobileDriver.findElement(DefaultGenericMobileDriver.java:61) 在 io.appium.java_client.AppiumDriver.findElement(AppiumDriver.java:1) 在 io.appium.java

_client.android.AndroidDriver.findElement(AndroidDriver.java:1)
    at 

org.openqa.selenium.remote.RemoteWebDriver.findElementById(RemoteWebDriver.java:372) 在 io.appium.java_client.DefaultGenericMobileDriver.findElementById(DefaultGenericMobileDriver.java:69) 在 io.appium.java_client.AppiumDriver.findElementById(AppiumDriver.java: 1) 在 io.appium.java_client.android.AndroidDriver.findElementById(AndroidDriver.java:1) 在 org.openqa.selenium.By$ById.findElement(By.java:188) 在 org.openqa.selenium.remote.RemoteWebDriver .findElement(RemoteWebDriver.java:315) 在 io.appium.java_client.AppiumDriver.findElement(AppiumDriver.java:1) 在 io.appium.java_client.DefaultGenericMobileDriver.findElement(DefaultGenericMobileDriver.java:57) 在 io.appium.java_client。 android.AndroidDriver.findElement(AndroidDriver.java:1) 在 Testing.NewAppLaunch.main(NewAppLaunch.java:47)

标签: javaandroidseleniumappium-android

解决方案


推荐阅读