Splinter入门(九) Matchers 匹配器

Splinter入门(九) Matchers 匹配器

  我们知道,现在的网站基本都是动态网站,即采用了AJAX和异步JavaScript,因而很多元素标签都不会呈现在HTML中,是通过JavaScript动态创建的。在这种情况下,可以采用is_element_presentis_text_present去check是否某个元素或者文本是否存在。在这种情况下,Splinter或加载HTMLJavaScript代码,并做check,这个check是在JavaScript响应之前做的!!
  对于is_element_presentis_text_present可以传递wait_time参数(延时时间:单位s),如果存在,上述方法返回True(即使还没超过延时时间),如果直到延时时间结束都没有check到,则返回False

检验text是否存在

is_text_present用于检测text是否存在,存在则返回True,不存在返回False。例如:

browser = Browser()
browser.visit('https://splinter.readthedocs.io/')
browser.is_text_present('splinter') # True
browser.is_text_present('splinter', wait_time=10) # True, using wait_time
browser.is_text_present('text not present') # False

is_text_not_present用于检测text是否存在,不存在则返回True,存在返回False。例如:

browser = Browser()
browser.visit('https://splinter.readthedocs.io/')
browser.is_text_not_present('text not present') # True
browser.is_text_not_present('text not present', wait_time=10) # True, using wait_time
browser.is_text_not_present('splinter') # False

检验Elements(元素)是否存在

 Splint提供了6种方法来检查页面中是否存在元素,每个选择器类型都有一个:css, xpath, tag, name, id, value, textis_element_present_by*方法表示存在则返回True,不存在返回False。例如:

browser.is_element_present_by_css('h1')
browser.is_element_present_by_xpath('//h1')
browser.is_element_present_by_tag('h1')
browser.is_element_present_by_name('name')
browser.is_element_present_by_text('Hello World!')
browser.is_element_present_by_id('firstheader')
browser.is_element_present_by_value('query')
browser.is_element_present_by_value('query', wait_time=10) # using wait_time

is_element_not_present_by*方法表示不存在则返回True,存在返回False。例如:

browser.is_element_not_present_by_css('h6')
browser.is_element_not_present_by_xpath('//h6')
browser.is_element_not_present_by_tag('h6')
browser.is_element_not_present_by_name('unexisting-name')
browser.is_element_not_present_by_text('Not here :(')
browser.is_element_not_present_by_id('unexisting-header')
browser.is_element_not_present_by_id('unexisting-header', wait_time=10) # using wait_time

检验Elements(元素)是否可见

HTML中,元素可以设置hidden属性,用于控制元素是否可见。上面所说的present表示元素是否存在,这两个是不同的概念。is_element_visible*用于check元素是否可见,提供了cssxpath两种选择器。如果可见则返回True,不可见返回False。例如:

browser.is_element_visible_by_css('h5')
browser.is_element_visible_by_css('h5', wait_time=10)
browser.is_element_visible_by_xpath('//h5')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cuntou0906

玛莎拉蒂是我的目标!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值