我的情况并不是获取不到 toast,而是定位到了,但是 text 为 “” 空值。
ft1.2: Traceback (most recent call last):
File "C:\Users\Administrator\PycharmProjects\yangoWebTest\test_cases\TestLogin.py", line 241, in test_log04
raise err
File "C:\Users\Administrator\PycharmProjects\yangoWebTest\test_cases\TestLogin.py", line 205, in test_log04
self.assertEqual(toast, wrong_username)
AssertionError: '' != '未找到对应账号信息!'
不知道这样子对不对, 我试了没有用
pwd_el = driver.find_element(*self.password)# 定位元素
driver.execute_script(f'$({pwd_el}).value=''')
value。我试试
因为用 clear 清除不了,当我第一次 send_keys("12") 后 clear 掉,再次 send_keys("123") 时,输入框里面不是"123", 是"12123"
我试的是:"arguments[0].value='{val}'"val 直接用新的值代替,但是好像不行,但是对 js 不太了解,不知道有没有更合适的方法
clear 试过了,不能清除值
可以填值,只是不能清除值
结合您和楼上的评论,我好像有点思路了,我先去试试。
请问在哪里初始化的时候呢,driver 如何在各个 py 文件之间传递呢
是用一个专门的类管理 driver 吗,如:
class driver:
def __init__(self, driver: None):
self.driver = driver
def run(self):
return self.driver
def quit(self):
self.driver.quit()
但是这样的话,每次初始化这个类都会初始化一次 driver
而且如果在 basePage 里面每次默认传入 webDriver,当我在一个 testcase 中初始化一个其他的 page 类,都会传入一个新的 webdriver,即重新打开 app 一次。
有两种方法,一种是问题贴下面回答的通过 xpath 定位://*span[@text=""],通过查找文本信息找到相应元素。
另一种是后来发现,除了 style 之外,class 也是不同,可以通过 css 定位:[class='el-tree el-tree--highlight-current'] div[role='treeitem'][class='el-tree-node is-expanded is-focusable']>div>span:nth-last-child(1)。
role 和 class 两个属性一起找,然后获取最后一个子元素,毕竟 style 可能每次会发生变化,因此还是不太稳定。
谢谢,已解决
role='treeitem'的 div 有很多个,他们唯一的区别是一个有 style,一个没有,有的时候没有 style 的那个会变成有 style 但是 style 为空
无法关联到唯一元素