现在还没看到前端的代码,但是你提醒了我这应该不是 clear 的问题,而是提交按钮的问题,所以我尝试使用了submit()
,这时候表单压根没有提交【刚刚看错了】
可能还是用的是 button。
好的,我问一下前端
有输入空的需求
尝试过,没有用。
是原来输入并提交的,原来输入框中有东西,所以需要清空。
浏览器应该没有自动填充,而且刷新前页面显示是清空了,但是点击提交时,我也 F12 看了请求,value 值没有被清掉,但是我使用了self.driver.execute_script("arguments[0].value=''", ele)
也没有清除掉 value 值。
ActionChains(self.driver).double_click(ele).perform()
self.driver.execute_script("arguments[0].value=''", ele)
都试过了
是的
将 6349 的 column 找一遍,找不到就翻页,找得到就将 index 保存起来,然后直接点击计息方案那一栏的第 index 个
PS:其实我对于列表的处理也比较束手无策,所以上面的方法只能作为参考意见啦
请问要找到指定信息,还是比较列表所有的信息呢
请问什么情况下用例的设计需要增加对标签文本的检查呢?
可以,你二次封装 selenium 的每个方法,比如 click
def click(location , timeout, poll_frequenty):
self.wait_element(self, timeout, poll_frequenty)
el = self.find_element(*location)# 已经被封装
el.click()
def wait_element(location, timeout, poll_frequenty):
"""被封装的的等待元素出现的方法"""
WebDriverWait(self.driver, timeout).until(expected_conditions.locaton……)
在每个需要获取元素的方法前面加一个 wait,然后封装起来,接下来你使用这些方法就很少需要等待了,但是页面的切换,窗口的出现,你还是需要 sleep(1),有时候它是没法替代的,不过你用的机会会少很多。
可以看看 (https://selenium-python-zh.readthedocs.io/en/latest/waits.html)
sleep(1) 就是对所有元素。
element.click()
# 强制等待
sleep(1)
等待一个元素的出现或者一个元素某个属性呈现某种状态,可以去看看隐式等待/显式等待/expected_conditions
但是停顿某个时间,sleep(1) 虽然很多人都说它不够灵活,但是有时候是不得不选择的一个方式,因为有时候页面有加载 java script 的过程,所以就算元素出现了,对其操作会无效。
想请教您一个问题,ui 自动化测试,有没有必要检查界面显示呢,因为界面上有表单,表单旁边会有标签,需要去检查标签的文字显示是否正确吗
test_case003_1
不是,我使用了 test 开头,无论是文件,类,还是方法,可以看看上面的回复,我刚刚解决啦
已解决。
ddt 源码中有个函数用来生成用例名称—— mk_test_name
它接收两个参数:name 和 value。
name:为测试用例的名字。即 test_load_page;
value:为测试数据,ddt 是处理一组测试数据。而这个 value 就是这一组数据中的每一个测试数据。
对 value 的值是有限制的:要么就是单值变量,要么就是元组或者列表并且要求元组和列表中的数据都是单值变量。如 ("name","port") 、["name","port"]
如果传进来的测试数据,不符合 value 的要求,那么测试用例名字为:name_index。
如果传进来的测试数据,符合 value 的要求,那么测试用例名字为:name_index_value。如果 value 为列表或者元组,那么将列表/元组的每个数据依次追加在末尾。
比如传进来的 name 值为 test_login,value 值为 ["name","port"]。那最终的测试用例名字是:test_load_page_01_name_port。
如果传进来的 name 值为 test_login,value 值为{"userName":"18500384561", "password":"123456"},那最终的测试用例名字为:test_load_page_1。 因为它不支持对字典类型的数据处理 。
所以我得到的测试用例名称就是:test_load_page_1test_load_page_2,test_load_page_3
不管是 unittest.TestSuite() 方法添加单个用例还是 loader.loadTestsFromNames() 添加用例都不行,都是找不到用例类下面的那个用例,ddt 的限制?
好的,谢谢
是的。。。是不是不太可能实现
得到的不是一个东西哦
登录是自动化登录的,通过 selenium,不是接口测试,是 selenium UI 自动化测试
抓包是:比如我点击搜索,抓取到这个操作的那个包吗,那这样数据肯定是对的呀,这样做是否无意义?
其实我也在考虑从接口获取数据然后验证 ui 上的数据是否正确是否有合适的方法。
比如现在搜索功能,selenium 自动搜索空,点击搜索,出来的是全部的数据,我如何验证这个全部数据是正确的呢?
我知道,会在 F12 的 network 的 request header 可以拿到,但是我希望在 ui 自动化测试中拿到