欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Expected conditions模塊使用方法匯總代碼解析

 更新時(shí)間:2020年08月13日 15:24:07   作者:藍(lán) 寅  
這篇文章主要介紹了Expected conditions模塊使用方法匯總代碼解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

一、expected_conditions模塊是什么?

是Selenium的一個(gè)子模塊,selenium.webdriver.support.expected_conditions

可以對(duì)網(wǎng)頁(yè)上元素是否存在,可點(diǎn)擊等等進(jìn)行判斷,一般用于斷言或與WebDriverWait配合使用

二、expected_conditions模塊簡(jiǎn)單應(yīng)用

2.1 WebDriverWait與expected_conditions配合使用實(shí)例一

import os
import time
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome()
driver.get('https://www.baidu.com')

# 等待10s,等待過(guò)程中判斷網(wǎng)頁(yè)標(biāo)題是否是"百度一下,你就知道"
# 如果是就繼續(xù)執(zhí)行后續(xù)代碼,反之等待10s結(jié)束時(shí)報(bào)錯(cuò)
WebDriverWait(driver,10).until(EC.title_is("百度一下,你就知道"))

2.2 WebDriverWait與expected_conditions配合使用實(shí)例二

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome()
driver.get('https://www.baidu.com')
#等待10s,等待過(guò)程中如果定位到元素,就直接執(zhí)行后續(xù)的代碼,反之等待10s后報(bào)錯(cuò)誤信息
element = WebDriverWait(driver,10).until(EC.visibility_of(driver.find_element(By.ID,'kw')))
element.send_keys( '新夢(mèng)想軟件測(cè)試' )

2.3 unittest與expected_conditions配合使用實(shí)例

import time
import unittest
from selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC

class TestDemo(unittest.TestCase):
  def setUp(self) :
    self.driver = webdriver.Chrome()
  def tearDown(self):
    time.sleep(2)
    self.driver.quit()

  def test_searchinputbox_is_visibility(self):
    self.driver.get('https://www.baidu.com')
    #EC.visibility_of()判斷元素是否可見(jiàn),如果可見(jiàn)就返回這個(gè)元素 
    self.assertTrue(EC.visibility_of(self.driver.find_element(By.ID,'kw')))
if __name__=='__main__':
  unittest.main()

實(shí)例小結(jié):

實(shí)例一與實(shí)例二中用到了顯式等待 WebDriverWait類(lèi),該塊不在此文中介紹;

實(shí)例三中self.assertTrue()方法斷言括號(hào)內(nèi)的表達(dá)式返回值是否為ture,在python中代表true的為 非0、非空、true,而

EC.visibility_of()方法中的定位方法能定位到元素就會(huì)返回一個(gè)對(duì)象,滿(mǎn)足非空為true,所以斷言會(huì)通過(guò);

注意EC.visibility_of()方法返回的對(duì)象非真實(shí)元素對(duì)象,所以不能執(zhí)行如下代碼:(正確方式參照實(shí)例二的寫(xiě)法)

element = EC.visibility_of(self.driver.find_element(By.ID,'kw'))
element.send_keys('newdream')

三、expected_conditions模塊用法匯總

#判斷當(dāng)前頁(yè)面的title是否精確等于預(yù)期,返回布爾值
WebDriverWait(driver,10).until(EC.title_is("百度一下,你就知道"))
#判斷當(dāng)前頁(yè)面的title是否包含預(yù)期字符串,返回布爾值
WebDriverWait(driver,10).until(EC.title_contains('new'))
#判斷當(dāng)前頁(yè)面的url是否精確等于預(yù)期,返回布爾值
WebDriverWait(driver,10).until(EC.url_contains('https://www.baidu.com'))
#判斷當(dāng)前頁(yè)面的url是否包含預(yù)期字符串,返回布爾值
WebDriverWait(driver,10).until(EC.url_contains('baidu'))
#判斷當(dāng)前頁(yè)面的url是否滿(mǎn)足字符串正則表達(dá)式匹配,返回布爾值
WebDriverWait(driver,10).until(EC.url_matches('.+baidu.+'))
#判斷元素是否出現(xiàn),只要有一個(gè)元素出現(xiàn),返回元素對(duì)象
WebDriverWait(driver,10).until(EC.presence_of_element_located((By.ID,'kw')))
#判斷元素是否可見(jiàn),返回元素對(duì)象
WebDriverWait(driver,10).until(EC.visibility_of(driver.find_element(By.ID,'kw')))
#判斷元素是否包含指定文本,返回布爾值
WebDriverWait(driver,10).until(EC.text_to_be_present_in_element((By.NAME,'tj_trnews'),'新聞'))
#判斷該frame是否可以switch進(jìn)去,如果可以的話(huà),返回True并且switch進(jìn)去
WebDriverWait(driver,10,).until(EC.frame_to_be_available_and_switch_to_it(By.xpath,'//iframe'))
#判斷某個(gè)元素是否可見(jiàn)并且是可點(diǎn)擊的,如果是的就返回這個(gè)元素,否則返回False
WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.NAME,'tj_trnews')))
#判斷某個(gè)元素是否被選中,一般用在下拉列表
WebDriverWait(driver,10).until(EC.element_to_be_selected(driver.find_element(By.xpath,'//input[@type="checkbox"]')))
#判斷頁(yè)面上是否存在alert,如果有就切換到alert并返回alert的內(nèi)容
WebDriverWait(driver,10).until(EC.alert_is_present())

備注:以上整理大家要注意參數(shù)和返回值,部分參數(shù)是元素對(duì)象,部分是locator的元組,如(By.NAME,'tj_trnews')

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python3實(shí)現(xiàn)的反轉(zhuǎn)單鏈表算法示例

    Python3實(shí)現(xiàn)的反轉(zhuǎn)單鏈表算法示例

    這篇文章主要介紹了Python3實(shí)現(xiàn)的反轉(zhuǎn)單鏈表算法,結(jié)合實(shí)例形式總結(jié)分析了Python基于迭代算法與遞歸算法實(shí)現(xiàn)的翻轉(zhuǎn)單鏈表相關(guān)操作技巧,需要的朋友可以參考下
    2019-03-03
  • Python partial函數(shù)原理及用法解析

    Python partial函數(shù)原理及用法解析

    這篇文章主要介紹了Python partial函數(shù)原理及用法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • 舉例講解Python常用模塊

    舉例講解Python常用模塊

    今天小編就為大家分享一篇關(guān)于舉例講解Python常用模塊,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-03-03
  • 獲取python的list中含有重復(fù)值的index方法

    獲取python的list中含有重復(fù)值的index方法

    今天小編就為大家分享一篇獲取python的list中含有重復(fù)值的index方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • Python實(shí)現(xiàn)新年愿望代碼雨效果

    Python實(shí)現(xiàn)新年愿望代碼雨效果

    新的一年又要來(lái)了,這篇文章主要為大家詳細(xì)介紹了如何利用Python實(shí)現(xiàn)新年愿望代碼雨的動(dòng)畫(huà)效果。文中的示例代碼講解詳細(xì),感興趣的可以動(dòng)手嘗試一下
    2023-01-01
  • 教你如何使用Python實(shí)現(xiàn)二叉樹(shù)結(jié)構(gòu)及三種遍歷

    教你如何使用Python實(shí)現(xiàn)二叉樹(shù)結(jié)構(gòu)及三種遍歷

    什么是二叉樹(shù):每個(gè)節(jié)點(diǎn)最多有兩個(gè)子樹(shù)的樹(shù)結(jié)構(gòu),通常子樹(shù)被稱(chēng)作“左子樹(shù)”(left subtree)和“右子樹(shù)”(right subtree) 二叉樹(shù)由兩個(gè)對(duì)象組成,一個(gè)是節(jié)點(diǎn)對(duì)象,一個(gè)是樹(shù)對(duì)象,需要的朋友可以參考下
    2021-06-06
  • 使用Python機(jī)器學(xué)習(xí)降低靜態(tài)日志噪聲

    使用Python機(jī)器學(xué)習(xí)降低靜態(tài)日志噪聲

    今天小編就為大家分享一篇關(guān)于使用Python和機(jī)器學(xué)習(xí)的靜態(tài)日志噪聲的文章,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-09-09
  • Python3中多線程編程的隊(duì)列運(yùn)作示例

    Python3中多線程編程的隊(duì)列運(yùn)作示例

    這篇文章主要介紹了Python3中多線程編程的隊(duì)列運(yùn)作示例,文中用一個(gè)簡(jiǎn)單的例子展示了Python下嘗試多線程時(shí)隊(duì)列的進(jìn)站出站是如何運(yùn)作的,需要的朋友可以參考下
    2015-04-04
  • 在Python中采集Prometheus數(shù)據(jù)的詳細(xì)用法教程

    在Python中采集Prometheus數(shù)據(jù)的詳細(xì)用法教程

    Prometheus是一個(gè)開(kāi)源的監(jiān)控和警報(bào)工具,專(zhuān)門(mén)用于記錄和查詢(xún)時(shí)間序列數(shù)據(jù),它提供了一個(gè)強(qiáng)大的查詢(xún)語(yǔ)言PromQL(Prometheus Query Language),允許用戶(hù)根據(jù)不同的標(biāo)簽和指標(biāo)選擇特定的時(shí)間序列數(shù)據(jù),本文將詳細(xì)介紹如何在Python中采集Prometheus數(shù)據(jù)
    2024-07-07
  • python+pillow繪制矩陣蓋爾圓簡(jiǎn)單實(shí)例

    python+pillow繪制矩陣蓋爾圓簡(jiǎn)單實(shí)例

    這篇文章主要介紹了Python+pillow繪制矩陣蓋爾圓簡(jiǎn)單實(shí)例,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01

最新評(píng)論