Appium遇到的坑

2021-01-27  本文已影响0人  檐下风铃听雨声

官方使用的链接:https://github.com/appium/appium-xcuitest-driver/blob/master/docs/real-device-config.md

1.每次appium重启浏览器的时候,都是一个全新的浏览器,所以如果需要登陆的情况下,可以使用通过设置cookies的方式登陆。
#进行cookies的设置
self.driver.add_cookie({"name": "__Host-APPLOVINID", "value": "593f595bc90eb2a5e6d637f805482df3"})
2.控件有时候使用appium-desktop可以获取到,click却无法操作,这是因为控件设置成了enable,可以使用相对位置的方式进行操作。
3.很多时候,找不到控件原因,是因为在使用的时候,控件没有刷新出来,所以可以使用wait操作,如果出现进行点击,或者使用sleep操作进行操作。
4.“element not interactable”问题根因:元素不可交互,可能的原因及解决方法如下所示:
element = WebDriverWait(browser,20,0.5).until(EC.presence_of_element_located((By.XPATH,'//*[@id="app"]/div')))

element=driver.find_element_by_css_selector('XXXXXX')
driver.execute_script("arguments[0].click();",element)
6.网页一些特殊元素的常规操作
from [selenium.webdriver.common.action_chains](http://selenium.webdriver.common.action_chains) import ActionChains
loginName = driver.find_element_by_xpath('//*[@id="sb"]')
# 对定位到的元素进行鼠标悬停的动作
ActionChains(driver).move_to_element(loginName).perform()
#等待几秒
sleep(3)
#点击弹出的某个元素
driver.find_element_by_link_text(u'  退出系统').click()
codeArea = WebDriverWait(driver, 20, 1).until(EC.presence_of_element_located((By.XPATH, '//[@id="grid_StudyDomain"]/tbody/tr[2]/td[2]/div/div[1]/table/tbody/tr[2]/td[2]')))
ActionChains(driver).double_click(codeArea).perform()
7.网页一些特殊元素的常规操作

我们加载网页的时候,获取元素获取不到,这个时候可以考虑网络的整体框架是否,查看是否因为在frame里面,使用self.driver.switch_to.frame(iframe_name)进行切换。这样才能正常访问对应的元素。

上一篇 下一篇

猜你喜欢

热点阅读