《主问题》
1.testcase支持写多个- xpath,执行顺序是什么样的?
2.如何加断言?
3.selenium的capability在哪里配置?
4.selenium的使用与appium使用还有哪些不一样的地方?
5.元素属性 clickable 本身就为 false 或者它的父节点等都为 false,这样自然是无法遍历到的,如何解决?
PS:app这块暂时未学习
《附加UI自动化问题》
问题一:
同一元素用有时候能点击成功,有时候报错“ElementClickInterceptedException”,是什么原因,如何辨别这类元素,如下图:
问题二:下面三个语句分别有什么区别以及分别在哪些场景里用
self.driver.execute_script(“arguments[0].click();”, ele)
ActionChains(self.driver).move_to_element(ele).click(ele).perform()
ele.click()
问题三:UI自动化直播实践最后一期,关于teardown_class里怎么写浏览器退出比较合适,我写的浏览器退出,要不就是退出失败,要不就是执行完用例后会自动打开一个新窗口然后再退出所有浏览器,我现在想要的效果是执行完用例就可以直接关闭浏览器,而不是打开一个新窗口后再关闭
问题四:企业微信页面读取cookies文件登录失败,是代码有哪些地方需要优化吗?(PS:已验证单独写个函数读取cookie登录是成功的)
# _BASE_URL="https://work.weixin.qq.com/wework_admin/frame"
def login(self):
self.driver.delete_all_cookies()
self.driver.get("https://work.weixin.qq.com/wework_admin/frame")
with open("../data/cookies.yaml", "r", encoding='u8') as f:
cookies = yaml.safe_load(f)
for i in cookies:
self.driver.add_cookie(i)
self.driver.refresh()
return HomePage(self.driver)```
报错信息:
FAILED
practice\prepare_ui1\testcases\test_addmember.py:20 (TestAddMember.test_addmember)
self = <study202208.practice.prepare_ui1.testcases.test_addmember.TestAddMember object at 0x00000245F0500DF0>
def test_addmember(self):
> result=self.home.click_add_member().fillinfo_member(self.membername,self.ssn,self.phone_number).get_tips_member()
self = <selenium.webdriver.remote.errorhandler.ErrorHandler object at 0x00000245F053CEB0>
response = {'status': 404, 'value': '{"value":{"error":"no such element","message":"no such element: Unable to locate element: {\...\n\\tRtlGetAppContainerNamedObjectPath [0x76F47A9E+286]\\n\\tRtlGetAppContainerNamedObjectPath [0x76F47A6E+238]\\n"}}'}
> raise exception_class(message, screen, stacktrace)
E selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[text()='添加成员']"}
E (Session info: chrome=103.0.5060.114)