起先,我只是想撸个羊毛,但是。。。
言归正传
首先:手机+电脑使用chrome,chrome://inspect/#devices这个方法被我pass了,操作不难,但是没有vpn,页面打开展示404,如果后面有不用vpn可以的方法,我会持续更新;
然后:试图使用切换至webview后再定位元素,但我打印出来的
print(driver.contexts)
都展示:
['NATIVE_APP']
生无可恋,内心崩溃
以下附上我想象中的代码:
def Print_list_data(driver):
source = driver.page_source
cs = BeautifulSoup(source, "lxml")
_span = []
cs = cs.find_all('td')
for i in cs:
text = i.string
if text not in _span:
# print('当前页面列表页数据:' + str(text))
_span.append(text)
return _span
# 获取所有的环境
contexts = driver.contexts
print contexts
# 切换到webview
driver.switch_to.context(contexts[1])
# 获取当前的环境,看是否切换成功
now = driver.current_context
print now
# 切回native
driver.switch_to.context(contexts[0])
# driver.switch_to.context("NATIVE_APP") # 这样也是可以的
# 获取当前的环境,看是否切换成功
now = driver.current_context
print now
然后:我又试了下从class里面取文字,然后我觉得这个代码看起来就是给app里面能取到的className=android.widget.TextView用的,哈哈哈哈哈哈失败;
river.tap([(905, 1233)])#去关注 time.sleep(3) print(driver.contexts) el = driver.find_elements_by_android_uiautomator('new UiSelector().className("android.widget.TextView")') print(el) for i in el: text = i.text print(text) if text == u'进店并关注': i.click() time.sleep(10) print('哈哈哈哈哈哈哈哈哈')