亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

appium 的此會話問題不支持定位器策略“css 選擇器”

appium 的此會話問題不支持定位器策略“css 選擇器”

jeck貓 2022-07-06 19:00:44
由于我是移動自動化的新手,我一直在嘗試使用 appium maven 和 eclipse 運行簡單的活動。但是當我嘗試運行計算器應用程序打開但元素不可訪問。這是我用來運行一個簡單計算器的代碼  @BeforeClass public void setUp() throws MalformedURLException {    DesiredCapabilities capabilities = new DesiredCapabilities();    capabilities.setCapability("BROWSER_NAME", "Android");    capabilities.setCapability("VERSION", "4.4.2");    capabilities.setCapability("deviceName", "Emulator");    capabilities.setCapability("platformName", "Android");    capabilities.setCapability("appPackage", "com.android.calculator2");    capabilities.setCapability("appActivity", "com.android.calculator2.Calculator");    driver = new RemoteWebDriver(new URL("http://0.0.0.0:4723/wd/hub"), capabilities);}@Testpublic void testCal() throws Exception {    WebElement two = driver.findElement(By.name("2"));    two.click();}@AfterClasspublic void teardown() {}我正在使用最新的穩定依賴項。 io.appium java-client 7.0.0 和 org.testng testng 6.14.3FAILED: testCalorg.openqa.selenium.InvalidSelectorException: Locator Strategy 'css selector' is not supported for this sessionFor documentation on this error, please visit: https://www.seleniumhq.org/exceptions/invalid_selector_exception.htmlDriver info: org.openqa.selenium.remote.RemoteWebDriverCapabilities {BROWSER_NAME: Android, VERSION: 4.4.2, appActivity: com.android.calculator2.Cal..., appPackage: com.android.calculator2, databaseEnabled: false, desired: {BROWSER_NAME: Android, VERSION: 4.4.2, appActivity: com.android.calculator2.Cal..., appPackage: com.android.calculator2, deviceName: Emulator, platformName: android}, deviceManufacturer: HUAWEI, deviceModel: FLA-LX2, deviceName: HXT7N18521000819, deviceScreenSize: 1080x2160, deviceUDID: HXT7N18521000819, javascriptEnabled: true, locationContextEnabled: false, networkConnectionEnabled: true, platform: LINUX, platformName: LINUX, platformVersion: 8.0.0, takesScreenshot: true, warnings: {}, webStorageEnabled: false}Session ID: a604a166-3c0d-4e9c-a3e4-9b1ea734bee6*** Element info: {Using=name, value=2}
查看完整描述

4 回答

?
眼眸繁星

TA貢獻1873條經驗 獲得超9個贊

Appium 不是 Selenium:它們都使用 JSON 有線協議實現并且具有相似的 API,但并不相同:

原生安卓應用支持的定位器策略:

  • id(resource-id 查看屬性);

  • accessbilityId(內容描述視圖屬性);

  • uiAutomator (更好地閱讀UiSelector);

  • className(UI 組件類型);

  • XPath。

因此,您不能By.name對 Android 驅動程序會話使用定位器策略,它不受支持。

為方便起見,我建議在 Appium 原生測試中使用MobileBy代替By:您將獲得正確的選項。


查看完整回答
反對 回復 2022-07-06
?
largeQ

TA貢獻2039條經驗 獲得超8個贊

我在 2020 年 2 月 3 日嘗試了這種方法,并且能夠成功執行。我必須做出的改變是將 io.appium 更新到 7.2.0。


我的案例/測試中的先決條件:Windows 機器,創建 Nexus S AVD,啟動 Appium 和 AVD。


最重要的是


URL url = new URL("http://127.0.0.1:4723/wd/hub");

driver = new AndroidDriver<MobileElement>(url, capabilities);

MobileElement two =(MobileElement)driver.findElement(By.id("com.android.calculator2:id/digit_9"));   

two.click();


查看完整回答
反對 回復 2022-07-06
?
青春有我

TA貢獻1784條經驗 獲得超8個贊

By.name("text")從此被刪除Appium v1.5.0。


此外,Appium 不支持原生應用程序中不支持cssSelector像 Selenium 中存在的策略 + 方法,因為 Android 的底層單元測試框架不支持這些方法,即.getAttribute("color/background")UIAutomator


您可以使用以下選項單擊計算器的數字


driver.findElement(By.id(“com.android.calculator2:id/digit5”)).click();

driver.findElement(By.xpath(“//android.widget.Button[contains(@resource-id,'digit5') and @text='5']”)).click();

driver.findElementByAccessibilityId(“plus”).click();

driver.findElement(By.xpath(“//android.widget.Button[@text='5']”)).click();


查看完整回答
反對 回復 2022-07-06
?
當年話下

TA貢獻1890條經驗 獲得超9個贊

始終使用類名和文本名來創建 xpath。


const loginbutton=await driver.$("//android.widget.TextView[@text='login']")



await loginbutton.click()

驅動來自能力


class name --> android.widget.TextView


text name -->login


所以總是使用類名和文本名來創建一個更好更好的 xpath。


適用于所有 android+appium+wdio


查看完整回答
反對 回復 2022-07-06
  • 4 回答
  • 0 關注
  • 312 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號