python selenium是什么意思_Python下selenium的简单用法

"""目前,大多数Web应用程序都在使用AJAX技术。当浏览器加载页面时,该页面中的元素

可能以不同的时间间隔加载。这使定位元素变得困难:如果DOM中尚未存在元素,则

locate函数将引发ElementNotVisibleException异常。使用等待,我们可以解决这个

问题。等待在执行的操作之间提供了一些松弛 - 主要是使用元素定位元素或任何其他操作。

Selenium Webdriver提供两种类型的等待 - 隐式和显式。

1.显式等待使WebDriver等待某个条件发生,然后再继续执行。(建议使用显示等待)

显式等待是您定义的代码,用于在进一步执行代码之前等待某个条件发生。

这种情况的极端情况是time.sleep(),它将条件设置为等待的确切时间段。

提供了一些便捷方法,可帮助您编写仅在需要时等待的代码。

WebDriverWait与ExpectedCondition相结合是一种可以实现的方法。

title_is # 标题是某内容

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 # 某个节点文本包含某文字

text_to_be_present_in_element_value # 某个节点值包含某文字

frame_to_be_available_and_switch_to_it # 加载并切换

invisibility_of_element_located # 节点不可见

element_to_be_clickable # 节点可点击

staleness_of # 判断一个节点是否仍在DOM ,可判断页面是否已经刷新

element_to_be_selected # 节点可选择,传节点对象

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 importwebdriverfrom selenium.webdriver.common.by importByfrom selenium.webdriver.support.ui importWebDriverWaitfrom selenium.webdriver.support importexpected_conditions as EC#声明浏览器对象并将其赋值为driver

driver =webdriver.Firefox()#调用get()方法请求网页

driver.get("https://www.taobao.com/")try:#WebDriverWait指定最长等待时间。而until()方法指定等待的条件

element = WebDriverWait(driver, 10).until(#检查该元素是否在10秒内加载出来并成功返回。没有则抛出异常

EC.presence_of_element_located((By.ID, "q"))

)

button= WebDriverWait(driver, 10).until(#检查元素是否可以点击

EC.element_to_be_clickable((By.CSS_SELECTOR, ".btn-search"))

)print(element, button)finally:#最后执行退出

driver.quit()"""2.隐式等待使WebDriver在尝试定位元素时将DOM轮询一段时间。

隐式等待告诉WebDriver在尝试查找不能立即可用的任何元素(或元素)

时轮询DOM一段时间。默认设置为0.设置后,将为WebDriver对象的生命周期

设置隐式等待.

如果查找的节点没有立即出现,将会等待一段时间再次查找,这段时间是固定的,

而页面加载会受到网络条件的影响,是不固定因素"""

from selenium importwebdriver#声明浏览器对象并将其赋值为driver

driver =webdriver.Firefox()#implicitly_wait()方法实现隐式等待。

driver.implicitly_wait(10)#开始请求网页

driver.get("https://www.zhihu.com/explore")#找到指定的元素

input = driver.find_element_by_id("zu-top-add-question")print(input)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值