0

これは私のコードです

desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '4.4.2'
desired_caps['deviceName'] = 'Gaurav'
# Returns abs path relative to this file and not cwd
#desired_caps['app'] = os.path.abspath(os.path.join(os.path.dirname(__file__), 'ApiDemos-debug.apk'))
desired_caps['app'] = os.path.abspath(os.path.join(os.path.dirname(__file__), 'ragga.apk'))
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
driver.implicitly_wait(100)
driver.find_element_by_id('com.raaga.android:id/skip_text').click()
driver.find_element_by_id('com.raaga.android:id/landing_skip_to_raaga').click()
driver.find_element_by_name('Hindi').click()
e1 = driver.find_element_by_android_uiautomator('new UiSelector().text("Most Popular")')
e2 = driver.find_element_by_android_uiautomator('new UiSelector().text("Remix")')
print e1,e2
driver.scroll(e1, e2)

スクロールを実行したいのですが、画面上では何のアクションも実行していません。これはAndroidデバイスのスクリーンショットです

ここに画像の説明を入力

以下は、Appium サーバーのログです。

info: [debug] [BOOTSTRAP] [debug] 登録されたクラッシュ ウォッチャー。情報: [デバッグ] [ブートストラップ] [デバッグ] クライアント接続情報: [デバッグ] [ブートストラップ] [デバッグ] クライアントからデータを取得しました: {"cmd":"action","action":"wake","params": {}} info: [debug] [BOOTSTRAP] [debug] Got command of type ACTION info: [debug] [BOOTSTRAP] [debug] Got command action: wake info: [debug] [BOOTSTRAP] [debug] 返される結果: { "value":true,"status":0} info: [デバッグ] cmd を実行中: C:\sdk\platform-tools\adb.exe -s 4d001f6ab48f90e9 shell "dumpsys window" info: [デバッグ] 画面は既にロック解除されています。続行中. info: [debug] コマンドを appium ワーク キューにプッシュしています: ["getDataDir",{}] info: [debug] [BOOTSTRAP] [debug] クライアントからデータを取得しました: {"cmd":"action","action":" info: [debug] cmd を実行しています: C:\sdk\platform-tools\adb.exe -s 4d001f6ab48f90e9 shell "getprop ro.build.version.release" info: [debug] デバイスはリリース バージョン 4.4.2 です info: [ debug] デバイス起動!コマンド情報の準備ができました: [デバッグ] コマンド タイムアウトをデフォルトの 60 秒に設定します 情報: [デバッグ] セッション ID 2c7f4312-23aa-4b5d-8b65-ae1f012797d0 で開始された Appium セッションms - 74 情報: --> GET /wd/hub/session/2c7f4312-23aa-4b5d-8b65-ae1f012797d0 {} 情報: [デバッグ] クライアントに成功で応答: {"status":0,"value":{ "platform":"LINUX","browserName":"Android","platformVersion":"4.4.2","webStorageEnabled":false,"takesScreenshot":true,"javascriptEnabled":true," [デバッグ] [BOOTSTRAP] [デバッグ] contextId を持つ ID を使用して com.raaga.android:id/skip_text を検索しています: 複数: false 情報: [デバッグ] [BOOTSTRAP] [デバッグ] 使用: UiSelector[INSTANCE=0, RESOURCE_ID=com .raaga.android:id/skip_text] 情報: [デバッグ] [ブートストラップ] [デバッグ] 要素の検索に失敗しました。アクセシビリティ キャッシュをクリアして再試行しています。info: [debug] [BOOTSTRAP] [debug] contextId を持つ ID を使用して com.raaga.android:id/skip_text を検索しています: 複数: false info: [debug] [BOOTSTRAP] [debug] Using: UiSelector[INSTANCE=0, RESOURCE_ID =com.raaga.android:id/skip_text] info: [debug] [BOOTSTRAP] [debug] 返される結果: {"value":"No element found","status":7} info: [debug] Waited for 911msこれまでの情報: [デバッグ] コマンドを appium ワークキューにプッシュ: ["find",{"strategy":"id","selector":" アクセシビリティ キャッシュをクリアして再試行しています。info: [debug] [BOOTSTRAP] [debug] contextId を持つ ID を使用して com.raaga.android:id/skip_text を検索しています: 複数: false info: [debug] [BOOTSTRAP] [debug] Using: UiSelector[INSTANCE=0, RESOURCE_ID =com.raaga.android:id/skip_text] info: [debug] [BOOTSTRAP] [debug] 返される結果: {"value":"No element found","status":7} info: [debug] Waited for 1510msこれまでの情報: [デバッグ] コマンドを appium ワーク キューにプッシュ: ["find",{"strategy":"id","selector":"com.raaga.android:id/skip_text","context":"" ,"multiple":false}] info: [debug] [BOOTSTRAP] [debug] クライアントからデータを取得しました: {"cmd":"action","action":"find","params":{"strategy": 「イド」,"selector":"com.raaga.android:id/skip_text","context":"","multiple":false}} info: [debug] [BOOTSTRAP] [debug] Got command of type ACTION info: [ debug] [BOOTSTRAP] [debug] Got command action: find info: [debug] [BOOTSTRAP] [debug] com.raaga.android:id/skip_text を検索する ID with contextId: multiple: false info: [debug] [BOOTSTRAP ] [デバッグ] 使用: UiSelector[INSTANCE=0, RESOURCE_ID=com.raaga.android:id/skip_text] 情報: [デバッグ] [BOOTSTRAP] [デバッグ] 要素の検索に失敗しました。アクセシビリティ キャッシュをクリアして再試行しています。info: [debug] [BOOTSTRAP] [debug] contextId を持つ ID を使用して com.raaga.android:id/skip_text を検索しています: 複数: false info: [debug] [BOOTSTRAP] [debug] Using: UiSelector[INSTANCE=0, RESOURCE_ID =com.raaga.android:id/skip_text] 情報: [デバッグ] [BOOTSTRAP] [デバッグ] contextId を持つ ID を使用して com.raaga.android:id/skip_text を検索しています: 複数: false 情報: [デバッグ] [BOOTSTRAP] [デバッグ] 使用: UiSelector[INSTANCE=0, RESOURCE_ID=com .raaga.android:id/skip_text] 情報: [デバッグ] [ブートストラップ] [デバッグ] 要素の検索に失敗しました。アクセシビリティ キャッシュをクリアして再試行しています。info: [debug] [BOOTSTRAP] [debug] contextId を持つ ID を使用して com.raaga.android:id/skip_text を検索しています: 複数: false info: [debug] [BOOTSTRAP] [debug] Using: UiSelector[INSTANCE=0, RESOURCE_ID =com.raaga.android:id/skip_text] info: [debug] [BOOTSTRAP] [debug] 返される結果: {"value":"No element found","status":7} info: [debug] Waited for 2612msこれまでの情報: [デバッグ] コマンドを appium ワークキューにプッシュ: ["find",{"strategy":"id","selector": 0} 情報: [デバッグ] 成功したクライアントへの応答: {"status":0,"value":true,"sessionId":"2c7f4312-23aa-4b5d-8b65-ae1f012797d0"} 情報: <-- POST /wd /ハブ/セッション/2c7f4312-23aa-4b5d-8b65-ae1f012797d0/要素/2/クリック 200 2494.108 ミリ秒 - 76 {"ステータス":0、"値":true、"sessionId":"2c7f4312-23aa-4b5d-8b65 -ae1f012797d0"} 情報: --> POST /wd/hub/session/2c7f4312-23aa-4b5d-8b65-ae1f012797d0/element {"using":"name","sessionId":"2c7f4312-23aa-4b5d-8b65- ae1f012797d0","value":"Hindi"} warn: [非推奨] name locator 戦略は非推奨であり、削除されます。代わりに、アクセシビリティ ID ロケーター戦略を使用してください。info: [debug] 条件情報を最大 100000 ミリ秒待機しています: "selector":"new UiSelector().text(\"Most Popular\")","context":"","multiple":false}} 情報: [デバッグ] [ブートストラップ] [デバッグ] タイプのコマンドを取得しましたACTION info: [debug] [BOOTSTRAP] [debug] Got command action: find info: [debug] [BOOTSTRAP] [debug] Finding new UiSelector().text("Most Popular") with ANDROID_UIAUTOMATOR with contextId: multiple: false info: [debug] [BOOTSTRAP] [debug] Parsing selector: new UiSelector().text("Most Popular") info: [debug] [BOOTSTRAP] [debug] UiSelector coerce type: class java.lang.String arg: " Most Popular" info: [debug] [BOOTSTRAP] [debug] Using: UiSelector[TEXT=Most Popular] info: [debug] [BOOTSTRAP] [debug] 要素を見つけられませんでした。アクセシビリティ キャッシュをクリアして再試行しています。情報:[デバッグ] [ブートストラップ] [デバッグ] クライアントからデータを取得しました: {"cmd":"action","action":"element:touchUp","params":{"elementId":"5","x": 584,"y":1204}} info: [debug] [BOOTSTRAP] [debug] Got command of type ACTION info: [debug] [BOOTSTRAP] [debug] Got command action: touchUp info: [debug] [BOOTSTRAP] [デバッグ] 要素を使用して TouchUp を実行しますか? true x: 584、y: 1204 info: [debug] [BOOTSTRAP] [debug] 返される結果: {"value":true,"status":0} info: [debug] クライアントへの応答成功: {"status" :0,"value":true,"sessionId":"2c7f4312-23aa-4b5d-8b65-ae1f012797d0"} 情報: <-- POST /wd/hub/session/2c7f4312-23aa-4b5d-8b65-ae1f012797d0/touch/実行 200 1912.002 ミリ秒 - 76 {"ステータス":0,"

また、スクロールしたい要素が現在の画面ビューの下に隠れているときに、画面をスクロールするのを手伝ってください。

4

2 に答える 2

0

まず、以下でそれを行うことができます:

//Scroll till element which contains "Views" text If It Is not visible on screen.
driver.scrollTo("Views");

// Scroll till element which contains Tabs text.
driver.scrollTo("Tabs");

これは、試すことができる非常に簡単な方法です。これで問題が解決しない場合は、次のコードを試すことができます。

Dimension size = driver.manage().window().getSize(); 
int starty = (int) (size.height * 0.80); 
//Find endy point which is at top side of screen. 
int endy = (int) (size.height * 0.20);
//int endy = (int) (size.height * 0.10);
//Find horizontal point where you wants to swipe. It is in middle of screen width. 
int startx = size.width / 2; 

//Swipe from Bottom to Top. 
driver.swipe(startx, starty, startx, endy, 3000); 

これがあなたを助けることを願っています。

于 2016-08-08T15:21:27.657 に答える