大神们,这是我写的两个代码,都报错找不到元素
没有 try......except 的那个代码会报错 Timeexception,求助大家,帮助一下我这个小菜鸟,真的不是伸手党,查了很多资料,还是没有搞懂
围观的朋友,奉献上你们的干货吧,大家一起解决这个问题,谢谢
用 xpath 定位呢
建议不要随便用 “大神” 这样的称呼,社区里面对这个称呼欢迎度一般。
另外,你第二个截图里面,是先切换了 webview 再查找原生控件的,顺序错了。切换 webview 后只能找到 webview 里面的网页控件,无法找到原生控件了。
至于为何找不到元素,可以先在你查找元素前增加一个输出页面 xml 布局源码的函数查看布局情况(函数印象中是 driver.page_source
,建议你查下 api 文档),确认下是否布局里面就没有你这个元素。
你把你 pagesource 打印出来,这样才能确保你已经切换到对应 webview
你好,我打印的里面就这些东西,什么元素也没有啊,不光没有神级仙医在都市,连男生,女生也没有,我是不是打印错了,如果就只有这些元素,我怎么定位我想定位的元素呢?就比如我要定位男生或者神级仙医在都市那本书
你好,这是我打印出来的信息,里面确实没有 “神级仙医在都市” 连 “男生”“女生” 也没有,那么我怎么才能定位我想定位的元素呢,代码应该怎么改啊,麻烦具体指导一下
@13楼的,你是怎么试的啊,可以把你的代码分享一下吗,谢谢
@friday 如果已经切换 H5 页面成功,通过 name 查找元素的话,试试 find_element_by_link_text 方法
@friday 把你的 Appium 关于这一段的日子发出来.
首先,打印的的 contexts,看看是否能获取到 WEBVIEW_com.xx.xx, 能获取得到则
driver.switch_to.context(context.driver.contexts[1]),切换失败,看看日志
@friday 看你的 appium 日志,有多个 H5 页面,根据你要找的元素在哪个 webview 然后切换到对应的 webview
我只想想切换到精选页面,我需要怎么写代码呢?
麻烦具体的分享一下代码好吗,我试了很多种方法了,都跑不通,现在脑袋全是浆糊了,谢谢
@friday 神级仙医在都市,看你 h5 页面显示的连接件,WEBVIEW 应该是'WEBVIEW_com.sina.book',你把代码里面 driver.contexts[-1] 获取的 WEBVIEW 打印出来呗,不行就直接 driver.contexts['WEBVIEW_com.sina.book']
你说的那个方法,我试了,都是报错 NoSuchElementException: Message: no such element,我只想知道,我写的代码,切换到了 webview 吗,为什么一直找不到元素,大神你可以把具体的切换到 webview 代码分享一下吗,比如你之前是怎么切换的
切没切换成功 你把 context 打印出来看看不就 OK 了吗.怎么切换的就是 switch_to_context 啊 .......................
1.desired_caps = {
'automationName': 'Uiautomator2', # 设置捕获 Android Toast 提示
'app': appLocation, # app 路径
'appPackage': appPackage, # app 包名
'deviceName': deviceName, # 设备名称
'udid': deviceId, # 设备唯一编号
'appActivity': launchActivity, # 应用启动 activity
'chromeOptions': {'androidProcess': appPackage},
'platformName': 'Android', # 应用平台名称
'platformVersion': deviceVersion, # 应用平台版本
'unicodeKeyboard': True, # 设置输入法能输入中文
'resetKeyboard': True,
'newCommandTimeout': 120, # Appium 超时时间设置
'noSign': True # 跳过检测和对应用进行 debug 签名的步骤,防止 app 签名被修改,导致更新不了应用
}里面加上'chromeOptions': {'androidProcess': appPackage},
2.查看你手机的 Android System WebView 的版本与你 Appium 里面的 chromedriver 的版本是否匹配 (/uploads/photo/2017/dd374f11-a8eb-4229-a24f-86cacc1d9dc7.png)
http://chromedriver.storage.googleapis.com/index.html
楼主遇到过切换 webview 卡死的情况吗?我现在在使用 switch_to_context 会卡死呢?
试下这个方法呢
driver.find_element_by_xpath(xxxxxxxxxx'精选').click()----------点开精选
print driver.current_context
driver.switch_to.context('xxxxxxxxx')
感觉就是 22 楼的方法
context 的()里是什么呀,坐标元素?
有这样的错误日志。 有 webview,在执行 switch_to_context 的时候就这样了,楼主知道怎么解决吗