python与selenium,selenium是什么意思啊
目前,大多数Web应用程序都在使用AJAX技术。当浏览器加载页面时,页面中的元素
可以在不同的时间间隔加载。这使得定位元素变得困难:如果元素不存在于DOM中,那么
locate函数将引发ElementNotVisibleException异常。等等,我们可以解决的。
问题在等待执行的操作之间提供了一些松弛——主要使用元素来定位元素或任何其他操作。
Selenium Webdriver提供了两种类型的等待——隐式和显式。
1.显式等待使WebDriver在继续执行之前等待某个条件发生。(建议使用显示等待)
显式等待是您定义的在进一步执行代码之前等待特定条件发生的代码。
这种情况的极端例子是time.sleep(),它将条件设置为等待的确切时间段。
提供一些方便的方法来帮助您编写只在需要时等待的代码。
WebDriverWait和ExpectedCondition的组合是一个可实现的方法。
标题是#标题是某事
Title_contains #标题包含了一些东西。
加载presence_of_element_located #节点,后代定位元组,比如(By。ID, p )
visibility_of_element_located #节点可见,后代定位元组。
Visibility_of #是可见的,并且传入的节点对象
presence _ of _ All _ elements _ located #加载所有节点
节点文本包含一些文本。
text _ to _ be _ present _ in _ element _ value #节点值包含一些文本。
frame _ to _ be _ available _ and _ switch _ to _ it #加载并切换
invisibility _ of _ element _ located #节点不可见。
可点击的#节点。
确定一个节点是否还在DOM中,以及页面是否已经被刷新。
可以选择Element_to_be_selected # node,传递node对象。
element _ located _ to _ be _ selected #节点可选,元组按后代定位。
Element_selection_state_to_be #传递节点对象及其状态。如果相等,则返回True否则,它返回False。
element _ located _ selection _ state _ to _ be #传入定位元组和状态,等式返回True,否则返回False。
Alert_is_present #有警告吗
from selenium importwebdriver from selenium . web driver . common . by importByfrom selenium . web driver . support . ui importwebdriver wait from selenium . web driver . su support IMPORT EXPECTED _ CONDITIONS AS EC #声明browser对象并将其指定为驱动程序。
Driver=webdriver。Firefox()#调用get()方法来请求网页
driver . get( 3359 www.taobao.com/)try:# web driver wait指定最大等待时间。until()方法指定等待条件。
Element=webdriverwait (driver,10)。直到(#检查元素是否在10秒内加载并成功返回。不会引发任何异常。
EC . presence _ of _ element _ located((By。ID, q ))
)
Button=webdriverwait(驱动程序,10)。直到(#检查元素是否可以被点击。
EC.element_to_be_clickable((By。CSS_SELECTOR,。BTN-搜索))
)print(element,button)finally:#最后执行退出。
Driver.quit()2。隐式等待使WebDriver在试图定位元素时轮询DOM一段时间。
隐式等待,告诉WebDriver它正在尝试查找任何不立即可用的元素。
轮询DOM一段时间。默认值为0。设置后,它将是WebDriver对象的生命周期。
设置隐式等待。
如果被搜索的节点没有立即出现,它将等待一个固定的时间再次搜索。
但是,页面加载会受到网络条件的影响,这是一个不确定的因素
from selenium importwebdriver#声明browser对象并将其指定为驱动程序。
driver=web driver . Firefox()# implicit _ wait()方法实现隐式等待。
Driver.implicit _ wait (10) #开始请求网页
driver . get( 3359 www.zhihu.com/explore)#查找指定的元素
input=driver . find _ element _ by _ id( zu-top-add-question )print(input)
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。