自动化三种等待操作和区别

js(java script)应用:

1、删除元素的某些属性:
js = 'arguments[0].removeAttribute("属性名称")'

2、添加元素的属性或修改元素属性的值(属性不在就是添加,在就是修改)
js= 'arguments[0].setAttribute("属性名称","属性值")'

3、滑动滚动条
js = 'window.scrollTo(x,y)'

4、滑动滚动条到某个元素可以显示出来的位置
js= 'arguments[0].scrollIntoView()'

执行js:excute_script()


下拉菜单处理:
1、直接定位子菜单点击
2、二次定位:先定位下拉菜单框再定位子菜单

3、使用select库下的方法选择:
常用方法:
select_by_index():通过索引选择
select_by_value():通过value属性值选择
select_by_visible_text():通过文字选择
deselect_all():取消所有选择
deselect_by_index():按照索引取消选择
deselect_by_value():按照value属性值取消选择
deselect_by_visible_text():按照文字取消选择
first_select_option:返回选择的第一个选择
all_slelect_options:返回所有被选中的选项

注意:实现select库下的方法操作下拉菜单,需要先定位下拉菜单框。

文件上传:
1、如果上传文件的文件路径输入框标签是input,id=file type=file,则可以直接定位文件路径输入框
    通过send_keys()将文件路径传进去,实现上传。
2、通过win32gui库下的方法实现文件上传。
pip install -i https://pypi.doubanio.com/simple/ pypiwin32


等待设置:
强制等待(sleep()):
使用简单,可以强制让代码暂停运行一段时间。缺点是不智能,时间设置短了不起作用,
设置的时间长了会浪费时间。
隐式等待(静态等待)implicitly_wait():
隐式等待是设置一个等待时间,在设置的时间内等待网页是否加载完成,
在设置的等待时间内,网页一旦加载完成就立刻执行后续脚本,不会等完设置的时间,在设置的等待时间内,网页
没有加载完成,则会超时报错。隐式等待对整个浏览器的驱动
周期起作用,只需要设置一次。缺点是依然可能浪费时间,因为页面元素随时间局部加载的,只有我们所需的元素加载
出来了,就可以执行后续脚本了,没有必要等完整个页面加载,但是隐式等待是必须等完页面加载的。

显示等待(动态等待)WebDriverWait():
显示等待可以结合until()方法,在until中设置显示等待的条件,可以在显示等待中设置一个等待时间,和一个间隔时间,在设置的等待时间内每隔一定时间判断一下条件是否成立,成立在即刻执行后续脚本。在设置的等待时间内,如果条件
一直不成立,就会超时报错。

在expected_conditons库下,提供了丰富的等待条件,可以形成丰富的等待场景。
precense_of_element_located():
      判断某个元素是否出现,出现则条件成立。传参为元组(By.ID,'id值'),返回值定位到的元素
precense_of_all_elements_located():             判断符合定位条件的所有元素是否出现,出现则条件成立。传参为元组(By.ID,'id值'),返回值定位到的元素组成的列表

visibility_of_element_located():
判断某个元素是否出现,且元素可见,且宽和高不为0,出现则条件成立。传参为元组(By.ID,'id值'),返回值定位到的元素
visibility_of_all_elements_located():
判断符合定位条件的所有元素是否出现,且元素可见,且宽和高不为0,出现则条件成立。传参为元组(By.ID,'id值'),返回值定位到的元素组成的列表

title_is():判断当前页面的标题是否等于某个字符串,传参为字符串,条件成立返回值为True,条件不成立超时报错
title_contains():判断当前页面的标题是否包含某个字符串,传参为字符串,条件成立返回值为True,条件不成立超时报错

frame_to_be_avaible_and_switch_to_it():判断某个frame框架是否可以切入,可以则直接切入。
传参一个元组(By.ID,'id值')。

text_to_be_present_in_element():判断某个元素的文字是否包含某个字符串,包含则条件成立,返回值为True,条件
一直不成立则超时报错。传参为元组和字符串
text_to_be_present_in_element_value():判断某个元素的value属性值是否包含某个字符串,包含则条件成立,返回值为True,条件一直不成立则超时报错。传参为元组和字符串

element_to_be_clickable():判断元素是否可以点击,可以则条件成立。传参为元组(By.ID,'id值'),返回值定位到的元素

alert_is_present():判断网页上是否有警告窗口,如果存在则获取警告窗口对象并返回。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值