应用提交 Url

Appium Submit Url

我正在使用 Python 和 Android Chrome。我的 WebDriver 是使用 WebDriver.Remote(host, caps)

创建的

我实际上想在隐身模式下使用 Chrome,但根据 似乎不可能。

但是有什么解决方法吗?例如,我可以将我的 url 提交到顶部 Chrome 的 url 栏吗?我试过 driver.find_element_by_id('com.android.chrome:id/url_bar').submit() 但它说没有实现。

您正在尝试使用 Appium 混合使用 2 种不兼容的移动自动化方法。

  1. 如果您想正常使用Selenium API以便像桌面浏览器一样控制移动浏览器:

    • 像这样实例化你的 AppiumDriver:

      desired_caps = {}
      desired_caps['platformName'] = 'Android'
      desired_caps['browserName'] = 'chrome'
      driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
      

      然后打开 URL 只需使用 driver.get() 功能,如:

      driver.get('http://example.com')
      
  2. 如果要使用Appium API and treat Chrome as any other mobile application you need to provide a little bit different set of desired capabilities and specify Chrome package and activity

    desired_caps = {}
    desired_caps['platformName'] = 'Android'
    desired_caps['appPackage'] = 'com.android.chrome'
    desired_caps['appActivity'] = 'com.google.android.apps.chrome.Main'
    driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
    

查看 Appium - > Code Examples -> Python 文章,了解有关移动设备自动化的更多信息 browsers/applications,包括代码片段

这是我的解决方法。解释在评论里。

# Open Menu/More Button
d.find_element_by_id('com.android.chrome:id/menu_button').click()

# Click On Incognito Mode
d.find_element_by_xpath('/hierarchy/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.ListView/android.widget.LinearLayout[3]').click()

# Find Url Bar on the top
url_bar = d.find_element_by_id('com.android.chrome:id/url_bar')

# Click on it which gives you another view.
url_bar.click()

# Set url and this gives you a list of options
url_bar.set_text('https://a.lianwifi.com/app_h5/jisu/wifiapk/sms.html?c=uvtest&type=1')

# Click the first one. This is the one that leads you to the page with your url.
d.find_element_by_xpath('/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.view.ViewGroup/android.widget.FrameLayout[2]/android.widget.ListView/android.view.ViewGroup[1]/android.view.ViewGroup').click()