appium 定位彈出框時報錯

來源:互聯網
上載者:User

標籤:post   .sh   彈出框   bsp   rri   原因   ret   外部   win   

今天在做APP自動化時,發現定位彈出框無法定位,無奈,百度去找.發現了一篇不錯的部落格,故轉載過來,供大家參考.後續會驗證這個方法的可行性.

本部落格轉自:http://blog.csdn.net/qq744746842/article/details/50284239

最近在嘗試做Care Android自動化的時候,發現popupwindow按鈕識別不到。類似於 ,UiAutomator仍然識別的是下一層的表單。可能這個時候有些人就開始想,工具都識別不出來。看來這個就是註定搞不了。 實際上我們應該嘗試的去分析下原因

分析

剛才前面說了,UiAutomator仍然識別的是下一層的表單 很有可能的原因是焦點仍然處於下一層表單的原因,帶著這個問題我們自己來寫個popupwindow的一個demo來驗證這個問題就可以了。

這裡就直接貼出popupwindow的代碼(網上很多)。

// 一個自訂的布局,作為顯示的內容        View contentView = LayoutInflater.from(mContext).inflate(                R.layout.pop_window, null);        // 設定按鈕的點擊事件        Button button = (Button) contentView.findViewById(R.id.button1);        button.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Toast.makeText(mContext, "button is pressed",                        Toast.LENGTH_SHORT).show();            }        });        final PopupWindow popupWindow = new PopupWindow(contentView,                ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, true);        popupWindow.setTouchable(true);        popupWindow.setTouchInterceptor(new View.OnTouchListener() {            @Override            public boolean onTouch(View v, MotionEvent event) {                Log.i("mengdd", "onTouch : ");                return false;                // 這裡如果返回true的話,touch事件將被攔截                // 攔截後 PopupWindow的onTouchEvent不被調用,這樣點擊外部地區無法dismiss            }        });        // 如果不設定PopupWindow的背景,無論是點擊外部地區還是Back鍵都無法dismiss彈框        // 我覺得這裡是API的一個bug        popupWindow.setBackgroundDrawable(getResources().getDrawable(                R.drawable.logo));        // 設定好參數之後再show        popupWindow.showAsDropDown(view);

上面的實現只是做到通過點擊一個按鈕後,彈出一個pipwindow,我們來試試用Uiautomator來識別下。

確實是識別不出來。那下來我們在contentView 後面加一句,讓contenview處於焦點

View contentView = LayoutInflater.from(mContext).inflate(                R.layout.pop_window, null);contentView.setFocusable(true);

運行程式,再來嘗試下識別看看。

好了識別成功了,說明就是一個焦點的問題導致的。所以只要讓開發哥哥們加上剛才前面那句代碼就可以了。

我這邊已通知開發改了,待後面驗證後,再繼續更新本部落格.

appium 定位彈出框時報錯

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.