国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

香港云服务器
服務器之家 - 編程語言 - JAVA教程 - Selenium處理select標簽的下拉框

Selenium處理select標簽的下拉框

2020-04-16 14:08蟲師 JAVA教程

Selenium是一個開源的和便攜式的自動化軟件測試工具,用于測試Web應用程序有能力在不同的瀏覽器和操作系統(tǒng)運行。接下來通過本文給大家介紹Selenium處理select標簽的下拉框,需要的朋友一起學習吧

Selenium是一個開源的和便攜式的自動化軟件測試工具,用于測試Web應用程序有能力在不同的瀏覽器和操作系統(tǒng)運行。Selenium真的不是一個單一的工具,而是一套工具,幫助測試者更有效地基于Web的應用程序的自動化。

有時候我們會碰到<select></select>標簽的下拉框。直接點擊下拉框中的選項不一定可行。Selenium專門提供了Select類來處理下拉框。

Selenium處理select標簽的下拉框

?
1
2
3
4
5
6
7
<select id="status" class="form-control valid" onchange="" name="status">
<option value=""></option>
<option value="0">未審核</option>
<option value="1">初審通過</option>
<option value="2">復審通過</option>
<option value="3">審核不通過</option>
</select>

Python-selenium中的操作  

 先以python為例,查看Selenium代碼select.py文件的實現(xiàn):

  ...\selenium\webdriver\support\select.py

class Select:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
def __init__(self, webelement):
"""
Constructor. A check is made that the given element is, indeed, a SELECT tag. If it is not,
then an UnexpectedTagNameException is thrown.
:Args:
- webelement - element SELECT element to wrap
Example:
from selenium.webdriver.support.ui import Select \n
Select(driver.find_element_by_tag_name("select")).select_by_index(2)
"""
if webelement.tag_name.lower() != "select":
raise UnexpectedTagNameException(
"Select only works on <select> elements, not on <%s>" %
webelement.tag_name)
self._el = webelement
multi = self._el.get_attribute("multiple")
self.is_multiple = multi and multi != "false"

  查看Select類的實現(xiàn)需要一個元素的定位。并且Example中給了例句。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
  Select(driver.find_element_by_tag_name("select")).select_by_index(2)
def select_by_index(self, index):
"""Select the option at the given index. This is done by examing the "index" attribute of an
element, and not merely by counting.
:Args:
- index - The option at this index will be selected
"""
match = str(index)
matched = False
for opt in self.options:
if opt.get_attribute("index") == match:
self._setSelected(opt)
if not self.is_multiple:
return
matched = True
if not matched:
raise NoSuchElementException("Could not locate element with index %d" % index)

  繼續(xù)查看select_by_index() 方法的使用并符合上面的給出的下拉框的要求,因為它要求下拉框的選項必須要有index屬性,例如index=”1”。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
def select_by_value(self, value):
"""Select all options that have a value matching the argument. That is, when given "foo" this
would select an option like:
<option value="foo">Bar</option>
:Args:
- value - The value to match against
"""
css = "option[value =%s]" % self._escapeString(value)
opts = self._el.find_elements(By.CSS_SELECTOR, css)
matched = False
for opt in opts:
self._setSelected(opt)
if not self.is_multiple:
return
matched = True
if not matched:
raise NoSuchElementException("Cannot locate option with value: %s" % value)

  繼續(xù)查看select_by_value() 方法符合我們的要求,它用于選取<option>標簽的value值。最終,可以通過下面有實現(xiàn)選擇下拉框的選項。

from selenium.webdriver.support.select import Select
……
sel = driver.find_element_by_xpath("//select[@id='status']")
Select(sel).select_by_value('0') #未審核
Select(sel).select_by_value('1') #初審通過
Select(sel).select_by_value('2') #復審通過
Select(sel).select_by_value('3') #審核不通過

Java-selenium中的操作

  當然,在java中的用法也類似,唯一不區(qū)別在語法層面有。

package com.jase.base;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.By.ById;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.Select;
public class SelectTest {
public static void main(String[] args){
WebDriver driver = new ChromeDriver();
driver.get("http://www.you_url.com");
// ……
Select sel = new Select(driver.findElement(ById.xpath("//select[@id='status']")));
sel.selectByValue("0"); //未審核
sel.selectByValue("1"); //初審通過
sel.selectByValue("2"); //復審通過
sel.selectByValue("3"); //審核不通過
}
}

延伸 · 閱讀

精彩推薦
  • JAVA教程Java8 HashMap的實現(xiàn)原理分析

    Java8 HashMap的實現(xiàn)原理分析

    Java8之后新增挺多新東西,接下來通過本文給大家介紹Java8 HashMap的實現(xiàn)原理分析,對java8 hashmap實現(xiàn)原理相關知識感興趣的朋友一起學習吧 ...

    mrr1352020-04-08
  • JAVA教程Java8新特性之Lambda表達式淺析

    Java8新特性之Lambda表達式淺析

    這篇文章主要介紹了Java8新特性之Lambda表達式,本文著重講解了Lambda表達式的語法部份,需要的朋友可以參考下 ...

    Java教程網(wǎng)2442019-11-23
  • JAVA教程C/C++和Java的交互詳解

    C/C++和Java的交互詳解

    本文旨在簡單的介紹一下如何讓java層和C/C++層相互調(diào)用,這里主要是使用了JNI技術,并沒有深究其原理,只是做了個實現(xiàn),其目的是為后面的學習打開一扇...

    hebedich1872020-03-25
  • JAVA教程java基礎學習筆記之反射

    java基礎學習筆記之反射

    什么是反射?Java 程序在運行期間可以動態(tài)加載、解析和使用一些在編譯階段并不確定的類型數(shù)據(jù),這一機制被稱為反射(Reflection)。今天我們就來詳細探討...

    hebedich2712020-03-28
  • JAVA教程java poi讀取excel操作示例(2個代碼)

    java poi讀取excel操作示例(2個代碼)

    這篇文章主要介紹了使用POI讀取EXCEL文件的方法,代碼大家可以參考使用 ...

    java技術網(wǎng)2492019-10-23
  • JAVA教程詳解DES加密算法及在Java程序中的使用示例

    詳解DES加密算法及在Java程序中的使用示例

    這篇文章主要介紹了詳解DES加密算法及在Java程序中的使用示例,文中還有一個用Java實現(xiàn)的DES三重加密的例子,需要的朋友可以參考下 ...

    匆忙擁擠repeat3352020-04-15
  • JAVA教程java模式匹配之蠻力匹配

    java模式匹配之蠻力匹配

    這篇文章主要介紹了java模式匹配之蠻力匹配的相關資料和代碼,需要的朋友可以參考下 ...

    hebedich4252019-12-19
  • JAVA教程JAVA IO API使用詳解

    JAVA IO API使用詳解

    本文通過理論、用法、實例詳細說明了JAVA IO的使用,大家參考其中的實例代碼實現(xiàn)自己的JAVA IO程序 ...

    java教程網(wǎng)3502019-10-21
748
主站蜘蛛池模板: 久久免费公开视频 | 日韩国产欧美一区 | 中文字幕在线观看日本 | 国产综合精品一区二区三区 | 日本精品视频一区二区 | 国产一区二区三区免费看 | 成年人免费在线看网站 | 成年人免费在线看网站 | 久久综合久色欧美综合狠狠 | 国产精品毛片在线 | 亚洲 欧美 日韩 在线 | 国产一区二区成人 | 久久久久久夜精品精品免费 | 亚洲成人免费 | 国产一区影院 | 黄色视屏免费在线观看 | 成人刺激视频在线 | 欧美一区二区三区免费 | 欧美一区二区三区在线观看视频 | 伊人久久综合精品一区二区三区 | 久久99精品久久久久久国产越南 | 一区二区三区视频在线观看 | 视频在线亚洲 | 黄色一级片一级片 | 亚洲一区二区在线 | 日韩在线一区二区三区免费视频 | 视频在线一区二区 | 一区二区三区在线播放 | 精品一区二区不卡 | 精品国产乱码久久久久久蜜柚 | 国产精品一二三区视频 | 成人免费视频008 | 日韩在线视频资源 | 中文字幕在线观看日本 | 国产精品久久久久久久久久久免费看 | 亚洲成人av在线 | 久久久久国产精品免费免费搜索 | 国产美女www爽爽爽免费视频 | 看国产黄色片 | 国产精品久久久久久久久久妞妞 | 先锋影音av在线 |