Appium Appium 切换进入 webview,点击元素偏离

yee · 2020年06月11日 · 最后由 yee 回复于 2020年06月11日 · 1880 次阅读

我遇到个奇怪的情况,进入 webview 后,使用 xpath 定位元素,运行脚本的时候最终点击的元素和我 xpath 定位的不一样(会向下偏移),程序也没报错,代码片段如下,我确保进入 webview 是成功的,而且我写的 xpath 也能定位到唯一元素,请问大家有遇到过这种情况情况?如何解决

@Test(group="buy1")
    def test01Buy(self):

        driver.switch_to.context('WEBVIEW_XXXXX)  # 进入webview

        # 通过selenium中的xpath操作元素
        from selenium.webdriver.common.by import By
        from selenium.webdriver.support.ui import WebDriverWait
        from selenium.webdriver.support import expected_conditions as EC
        locator_xpath = '//*[text()="资产明细"]'
        # 等待元素可见
        element = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, locator_xpath)))
        # 滑动滚动条到某个指定的元素
        js4 = "arguments[0].scrollIntoView();"
        # 将下拉滑动条滑动到element区域
        driver.execute_script(js4, element)
        driver.find_element_by_xpath(locator_xpath).click()
共收到 2 条回复 时间 点赞

检查下 '//*[text()="资产明细"]' 元素实际大小,或者 text 父级元素的实际大小。默认是点击元素中心,可能该元素中心并不在这个文字上。

yee #2 · 2020年06月11日 Author
YueChen 回复

资产明细就是一个 p 标签,由一个 p 标签和一个图标组成,就算点击到图标也应该不会差那么多,完全点到下面去了,完整的元素结构如下。

<li class="tipList"><b class="tipIcon iconContent"></b><p class="tipTxt">资产明细</p></li>
yee 关闭了讨论 12月24日 13:32
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册