Webview不是Java中Appium中可用的上下文

问题描述

在这里遵循Java的Appium的样板,返回的唯一可用上下文是rel_ax = ax.imshow(relevant_cells,cmap='Blues',interpolation='none',alpha=0.7)

我发现应用清单中也设置了["NATIVE_APP"],其他主题已建议解决该问题。

帮助程序文件-WebView.js

<uses-permission android:name="android.permission.INTERNET" />

screenobject文件夹- WebViewScreen.js

    export const CONTEXT_REF = {
    NATIVE: 'native',WEBVIEW: 'webview',};
const DOCUMENT_READY_STATE = {
    COMPLETE: 'complete',INteraCTIVE: 'interactive',LOADING: 'loading',};

class WebView {
    waitForWebViewContextLoaded() {
        driver.waitUntil(
            () => {
                const currentContexts = this.getCurrentContexts();

                return (
                    currentContexts.length > 1 &&
                    currentContexts.find((context) =>
                        context.toLowerCase().includes(CONTEXT_REF.WEBVIEW),)
                );
            },10000,'Webview context not loaded',100,);
    }

    switchToContext(context) {
        driver.switchContext(
            this.getCurrentContexts()[context === CONTEXT_REF.WEBVIEW ? 1 : 0],);
    }

    getCurrentContexts() {
        return driver.getContexts();
    }

    waitForDocumentFullyLoaded() {
        driver.waitUntil(
            () =>
                driver.execute(() => document.readyState) ===
                DOCUMENT_READY_STATE.COMPLETE,15000,'Website not loaded',);
    }
        waitForWebsiteLoaded() {
            this.waitForWebViewContextLoaded();
            this.switchToContext(CONTEXT_REF.WEBVIEW);
            this.waitForDocumentFullyLoaded();
            this.switchToContext(CONTEXT_REF.NATIVE);
        }
    
        openWebsiteMenu() {
            const toggle = $('.navToggle');
            toggle.waitFordisplayed(3000);
            toggle.click();
        }
    
        openApiDocs() {
            $('=API').click();
        }
    
        getHeaderPage() {
            const header = $('h1.postHeaderTitle');
            header.waitFordisplayed(3000);
        }
    
        clickOnMenuOption(option) {
            const webdriverProtocol = $(`=${option}`);
            webdriverProtocol.waitFordisplayed(3000);
            webdriverProtocol.click();
        }
    }
    export default WebView;

有人对导致此问题的原因有任何建议吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...