国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Python selenium下拉選擇框?qū)崙?zhàn)應(yīng)用詳解

89542767 / 663人閱讀

  小編寫這篇文章的主要目的,主要是給大家做出一個解答,解答內(nèi)容包括一些Python常用的技能,包括Python selenium下拉選擇框?qū)崙?zhàn)應(yīng)用,那么,具體的一個內(nèi)容是什么呢?下面就給大家詳細的解答下。


  一、前言


  selenium的下拉選擇框。我們通常會遇到兩種下拉框,一種使用的是html的標簽select,另一種是使用input標簽做的假下拉框。


  后者我們通常的處理方式與其他的元素類似,點擊或使用JS等。而對于前者,selenium給了有力的支持,就是Select類。


  進行測試的網(wǎng)站:http://sahitest.com/demo/selectTest.htm


  網(wǎng)頁及對應(yīng)源碼:

01.png

  二、關(guān)于導入方式


  兩種導入方式:


  from selenium.webdriver.support.ui import Select
  #或者直接從select導入
  from selenium.webdriver.support.select import Select


  三、選擇、反選、選項的實戰(zhàn)應(yīng)用例子


  話不多說,直接上代碼:


  #-*-coding:utf-8-*-
  """
  author:lucas
  Function:
  file:selectStudy.py
  time:2021/8/20 1:27下午
  """
  import unittest
  import time
  from selenium import webdriver
  from selenium.webdriver.support.ui import Select
  class SelectStudy(unittest.TestCase):
  def setUp(self):
  #創(chuàng)建一個Chrome WebDriver的實例
  self.driver=webdriver.Chrome()
  #選擇頁面第一個下拉框,依次選擇值O1-O3
  def test_selectO1ToO3(self):
  driver=self.driver
  driver.get('http://sahitest.com/demo/selectTest.htm')
  #實例化Select
  s1=Select(driver.find_element_by_id('s1Id'))
  #查看選擇框的默認值
  print s1.first_selected_option.text
  #選擇第二個選項o1
  s1.select_by_index(1)
  time.sleep(3)
  #為了方便查看效果,可以加上等待時間
  time.sleep(3)
  #選擇value="o2"的項,value是option標簽的一個屬性值,并不是顯示在下拉框中的值
  s1.select_by_value("o2")
  #查看選中選擇框的默認值
  print s1.first_selected_option.text
  time.sleep(3)
  #選擇text="o3"的值,即在下拉時我們可以看到的文本,visible_text是在option標簽中間的值,是顯示在下拉框的值
  s1.select_by_visible_text("o3")
  time.sleep(3)
  #反選操作,包括取消某個值和全部取消
  def test_cancel_select(self):
  driver=self.driver
  driver.get('http://sahitest.com/demo/selectTest.htm')
  s4=Select(driver.find_element_by_id('s4Id'))
  #全選
  for option in s4.options:
  if not option.is_selected():
  print option.text
  s4.select_by_visible_text(option.text)
  time.sleep(3)
  #根據(jù)index取消選中
  s4.deselect_by_index(0)
  time.sleep(3)
  #根據(jù)value取消選中
  s4.deselect_by_value("o1val")
  time.sleep(5)
  #根據(jù)標簽文本選中
  s4.deselect_by_visible_text("o2")
  time.sleep(5)
  #全選
  for option in s4.options:
  if not option.is_selected():
  s4.select_by_visible_text(option.text)
  time.sleep(3)
  #取消選中所有選項
  s4.deselect_all()
  #查看選中項目
  """
  輸出結(jié)果為:
  o1
  o2
  With spaces
  With nbsp
  """
  def test_view_selection(self):
  driver=self.driver
  driver.get('http://sahitest.com/demo/selectTest.htm')
  s4=Select(driver.find_element_by_id('s4Id'))
  #查看選擇框的默認值
  s4.select_by_index(1)
  s4.select_by_value("o2val")
  s4.select_by_visible_text("With spaces")
  s4.select_by_value("o4val")
  for select in s4.all_selected_options:
  print select.text
  def tearDown(self):
  self.driver.close()
  if __name__=="__main__":
  unittest.main()

  注意:


  反選(deselect)取消操作只適用于添加了multiple的下拉框,否則會報錯


  raise NotImplementedError("You may only deselect options of a multi-select")


  NotImplementedError:You may only deselect options of a multi-select


  四、總結(jié)


  1、Select提供了三種選擇方法:


  select_by_index(index)——通過選項的順序,第一個為0
  select_by_value(value)——通過value屬性
  select_by_visible_text(text)——通過選項可見文本


  2、Select提供了四種方法取消選擇:


  deselect_by_index(index)
  deselect_by_value(value)
  deselect_by_visible_text(text)
  deselect_all()


  3、Select提供了三個屬性方法給我們必要的信息:


  options——提供所有的選項的列表,其中都是選項的WebElement元素
  all_selected_options——提供所有被選中的選項的列表,其中也均為選項的WebElement元素
  first_selected_option——提供第一個被選中的選項,也是下拉框的默認值

  補充:三種定位方法如下


  1.select_by_visible_text():選項的文本內(nèi)容


  from selenium.webdriver.support.select import Select
  from time import sleep
  from selenium import webdriver
  dr=webdriver.Chrome()
  dr.get('url')
  dr.maximize_window()
  #先定位到下拉框,通過text文本定位
  Select(find_element_by_id('q')).select_by_visible_text('蒼井空')
  sleep(2)
  dr.quit()

  2.select_by_value():value屬性定位


  from selenium.webdriver.support.select import Select
  from time import sleep
  from selenium import webdriver
  dr=webdriver.Chrome()
  dr.get('url')
  dr.maximize_window()
  #先定位到下拉框,通過value屬性定位
  Select(find_element_by_id('q')).select_by_value('3')
  sleep(2)
  dr.quit()


  3.select_by_index():索引定位(0開始)


  from selenium.webdriver.support.select import Select
  from time import sleep
  from selenium import webdriver
  dr=webdriver.Chrome()
  dr.get('url')
  dr.maximize_window()
  #先定位到下拉框,通過索引定位
  Select(find_element_by_id('q')).select_by_index('1')
  sleep(2)
  dr.quit()


  到此為止,這篇文章就給大家介紹到這里了,希望可以給大家?guī)砀鄮椭?/p>

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/128247.html

相關(guān)文章

  • Python爬蟲】4萬字,詳解selenium從入門到實戰(zhàn)【錯過再無】

    摘要:難在哪里根據(jù)上面的標簽需要定位最后一行標簽,以下列出了四種方式,定位的方式多樣并不唯一,使用時根據(jù)情況進行解析即可。加入每日一練我們使用并指明標簽內(nèi)全部文本即可定位。 ...

    shiyang6017 評論0 收藏0
  • Python3網(wǎng)絡(luò)爬蟲實戰(zhàn)---37、動態(tài)渲染頁面抓取:Selenium

    摘要:不過動態(tài)渲染的頁面不止這一種。再有淘寶這種頁面,它即使是獲取的數(shù)據(jù),但是其接口含有很多加密參數(shù),我們難以直接找出其規(guī)律,也很難直接分析來抓取。我們用一個實例來感受一下在這里們依然是先打開知乎頁面,然后獲取提問按鈕這個節(jié)點,再將其 上一篇文章:Python3網(wǎng)絡(luò)爬蟲實戰(zhàn)---36、分析Ajax爬取今日頭條街拍美圖下一篇文章:Python3網(wǎng)絡(luò)爬蟲實戰(zhàn)---38、動態(tài)渲染頁面抓取:Spla...

    zhjx922 評論0 收藏0
  • Python3+selenium3的web端UI測試:控制窗口大小、彈窗、多窗口切換處理方法(3)

    摘要:自己犯下的低級錯誤后面不可加括號,因為是屬性,不是方法方法才用調(diào)用。 1、測試的時候一般調(diào)用的瀏覽器窗口都不是全屏的,為了不影響體驗我們需要將窗口最大化 解決的方案: showImg(https://segmentfault.com/img/bV7p2M?w=448&h=270); 按照自己的意愿設(shè)置窗口大小(注意:其中數(shù)字大小為像素點) showImg(https://segment...

    aisuhua 評論0 收藏0
  • 動態(tài)HTML介紹 & Selenium PhantomJS

    摘要:一個網(wǎng)站使用的特征就是源代碼里包含了入口比如如果你在一個網(wǎng)站上看到了,那么采集這個網(wǎng)站數(shù)據(jù)的時候要格外小心。直接點擊下拉框中的選項不一定可行。未審核初審通過復審通過審核不通過專門提供了類來處理下拉框。 JavaScript JavaScript 是網(wǎng)絡(luò)上最常用也是支持者最多的客戶端腳本語言。它可以收集 用戶的跟蹤數(shù)據(jù),不需要重載頁面直接提交表單,在頁面嵌入多媒體文件,甚至運行網(wǎng)頁游戲。...

    Lsnsh 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<