时间:2021-05-20
Selenium是一个开源的和便携式的自动化软件测试工具,用于测试Web应用程序有能力在不同的浏览器和操作系统运行。Selenium真的不是一个单一的工具,而是一套工具,帮助测试者更有效地基于Web的应用程序的自动化。
有时候我们会碰到<select></select>标签的下拉框。直接点击下拉框中的选项不一定可行。Selenium专门提供了Select类来处理下拉框。
Python-selenium中的操作
先以python为例,查看Selenium代码select.py文件的实现:
...\selenium\webdriver\support\select.py
class Select:
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 wrapExample:from selenium.webdriver.support.ui import Select \nSelect(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 = webelementmulti = self._el.get_attribute("multiple")self.is_multiple = multi and multi != "false" 查看Select类的实现需要一个元素的定位。并且Example中给了例句。
继续查看select_by_index() 方法的使用并符合上面的给出的下拉框的要求,因为它要求下拉框的选项必须要有index属性,例如index=”1”。
def select_by_value(self, value):"""Select all options that have a value matching the argument. That is, when given "foo" thiswould 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 = Falsefor opt in opts:self._setSelected(opt)if not self.is_multiple:returnmatched = Trueif not matched:raise NoSuchElementException("Cannot locate option with value: %s" % value) 继续查看select_by_value() 方法符合我们的要求,它用于选取<option>标签的value值。最终,可以通过下面有实现选择下拉框的选项。
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中的用法也类似,唯一不区别在语法层面有。
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://");
// ……
Select sel = new Select(driver.findElement(ById.xpath("//select[@id='status']")));
sel.selectByValue("0"); //未审核
sel.selectByValue("1"); //初审通过
sel.selectByValue("2"); //复审通过
sel.selectByValue("3"); //审核不通过
}
}
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
在我们浏览网页的时候经常会碰到下拉框,WebDriver提供了Select类来处理下拉框,详情请往下看:本章中用到的关键方法如下:select_by_value
许多页面上都涉及有下拉框,即select标签。对于简单的下拉框,被选择的数据是不需要改变的,我们可以用写死。这样下拉框的数据永远都是那几条。示例:信息一信息二信
话不多说,附上实例代码,仅供大家参考禁用下拉框//下拉框禁用$("select").each(function(){ $("#"+this.id).attr(
本文主要介绍select下拉框的相关方法。1、通过id获取下拉框的value和文本值例如:数字1数字2$("#numbersoption:selected").
jQueryForm表单美化插件jqTransform,非常实用的jQuery插件,自动把你整个Form表单进行美化处理,包括SELECT下拉框、文本框、单选、