selenide 中文api

三件简单的事情:

1. 打开页面 
2. $(element).doAction()
3. $(element).check(condition)

  open("/login");
  $("#submit").click();
  $(".message").shouldHave(text("Hello"));

使用IDE的强大功能

Selenide API由几个类组成。我们建议您停止阅读,打开IDE并开始输入。

只需键入:$(selector).- IDE将向您建议所有可用的选项。

Selenide API:刚开始输入

使用今天的开发环境的力量,而不是打扰文档!


硒化物API

这是一个完整的Selenide javadoc

仅供参考,这些是您可能需要工作的Selenide类:

com.codeborne.selenide.Selenide [src] [javadoc]

图书馆的核心。主要方法是open$$$(进口静态com.codeborne.selenide.Selenide *的可读性。):

  • open(String URL)打开浏览器(如果尚未打开)并加载URL
  • $(String cssSelector) - 返回表示由页面上的CSS选择器找到的第一个元素的SelenideElement类的对象。
  • $(By) - 由By类的定位器返回“第一个SelenideElement”。
  • $$(String cssSelector) - 返回ElementsCollection类型的对象,表示CSS选择器找到的所有元素的集合。
  • $$(By) - 由By类型的定位器返回“元素集合”。

通常,当您通过Dollar $命令获取SelenideElement对象时,您可以对其执行一些操作:

  • $(byText("Sign in")).click();

甚至同时进行多项行动:

  • $(byName("password")).setValue("qwerty").pressEnter();

或者你可以检查一些条件:

  • $(".welcome-message").shouldHave(text("Welcome, user!")).

$$当需要的元素是同一类型的元素时,“Double Dollar”命令()可能会很有用。例如,而不是:

$(byXpath("//*[@id='search-results']//a[contains(text(),'selenide.org')]")).click();

你可以使用更具可读性和冗长的选择:

$$("#search-results a").findBy(text("selenide.org")).click();

元素的大部分操作(由$and和$$commands 获取)都根据上下文内置了隐式等待。这使得在大多数情况下,通过明确处理等待加载元素的同时自动执行动态Web应用程序的测试,不会分散注意力。

不要害羞地在Selenide课堂内寻找更适合您需求的方法。只需输入您的IDE Selenide。并在可用的IDE提案中选择所需的选项。

这里只是一些例子:

sleep(), refresh()和 title()executeJavaScript(String jsCode,Object ... arguments)

Selenide gitbook中查找更多细节

com.codeborne.selenide.SelenideElement [src] [javadoc]

SelenideElement类描述的页面上找到的元素。这个类的对象可以通过$命令来获取在这个类中定义了以下有用的方法。

内部元素搜索方法
  • find(String cssSelector) / $(String cssSelector)
  • find(By) / $(By)
  • findAll(String cssSelector) / $$(String cssSelector)
  • findAll(By) / $$(By)

这里$$$只是更简洁的“别名” findfindAll方法相应。

因此,您可以逐步指定搜索路径,构建“定位链”:

$("#header").find("#menu").findAll(".item")
检查元素状态的方法 - 断言
  • should(Condition)shouldBe(Condition)/shouldHave(Condition)
  • shouldNot(Condition)shouldNotBe(Condition)/shouldNotHave(Condition)

我们建议选择方便的别名,以便可以像普通的英语短语一样轻松地读取代码行,例如:

$("input").should(exist);  
$("input").shouldBe(visible);
$("input").shouldHave(exactText("Some text"));

断言在Selenide中扮演明确的等待角色。他们等待的状态(visibleenabledtext("some text")),以满足,直到超时达到的值(Configuration.timeout即默认设置为4000毫秒)。您可以明确使用“should-methods”,以便在相应操作之前等待元素的所需状态,例如:$("#submit").shouldBe(enabled).click();

还有一些版本的“Selenide显式等待”能够明确设置超时:

  • waitUntil(条件,毫秒)
  • waitWhile(条件,毫秒)
方法 - 对元素的操作
  • click()
  • doubleClick()
  • contextClick()
  • hover()
  • setValue(String) / val(String)
  • pressEnter()
  • pressEscape()
  • pressTab()
  • selectRadio(String value)
  • selectOption(String)
  • append(String)
  • dragAndDropTo(String)
  • ...

大多数操作返回SelenideElement的对象(同一个代理元素),允许构建简洁的方法链:$("#edit").setValue("text").pressEnter();

获取元素状态和属性值的方法
  • getValue() / val()
  • data()
  • attr(String)
  • text() //返回“页面上的可见文本”
  • innerText() //返回“DOM中元素的文本”
  • getSelectedOption()
  • getSelectedText()
  • getSelectedValue()
  • isDisplayed()//如果元素被隐藏(不可见)或元素不存在于DOM中,则返回false; 否则 - 是真的
  • exists() 如果元素存在于DOM中,则返回true,否则返回false
其他有用的方法
  • uploadFromClasspath(String fileName)
  • 下载()
  • toWebElement()
  • uploadFile(文件...)

Selenide gitbook中查找更多细节

com.codeborne.selenide.Condition [src] [javadoc]

条件用在shouldshouldNotwaitUntilwaitWhile结构中。我们建议静态导入相应的条件以获得可读代码的所有优点:

  • 可见/出现//例如$(“input”)。shouldBe(可见)
  • present / exist // //在DOM中等待元素存在的条件(它仍然可以隐藏)
  • 隐藏/消失//不(可见)
  • 只读//例如$(“input”)。shouldBe(只读)
  • 名称//例如$(“input”)。shouldHave(name(“fname”))
  • 值//例如$(“input”)。shouldHave(value(“John”))
  • 键入//例如$(“#input”)。shouldHave(type(“checkbox”))
  • id //例如$(“#input”)。shouldHave(id(“myForm”))
  • 空//例如$(“h2”)。shouldBe(空)
  • 属性(名称)//例如$(“#input”)。shouldHave(attribute(“required”))
  • 属性(名称,值)//例如$(“#list li”)。shouldHave(attribute(“class”,“active checked”))
  • cssClass(String)//例如$(“#list li”)。shouldHave(cssClass(“checked”))
  • 重点
  • 启用
  • matchText(String regex)
  • 文本(字符串子字符串)
  • exactText(String wholeText)
  • textCaseSensitive(String substring)
  • exactTextCaseSensitive(String wholeText)

Selenide gitbook中查找更多细节

com.codeborne.selenide.Selectors [src] [javadoc]

该类包含一些By选择器,通过文本或属性来定位元素(在标准的Selenium WebDriver API中可能会遗漏):

// Examples:
$(byText("Login")).shouldBe(visible));
$(By.xpath("//div[text()='Login']")).shouldBe(visible);  // any org.openqa.selenium.By.* selector can be used
$(byXpath("//div[text()='Login']")).shouldBe(visible);  // or any its alternative from Selectors class 

Selenide gitbook中查找更多细节

com.codeborne.selenide.ElementsCollection [src] [javadoc]

这是描述页面上由定位器找到的元素集合的类。通常可以通过该$$方法获取ElementsCollection类的对象该类包含相当有用的方法。

断言
  • 应该 - 例如$$(".errors").shouldBe(empty)
  • 应该 - 例如$$("#mytable tbody tr").shouldHave(size(2))

断言也扮演显式等待的角色。他们等待的状态下(例如size(2)emptytexts("a", "b", "c"))来满足,直到超时达到的值(Configuration.collectionsTimeout即默认设置为6000毫秒)。

获取元素集合的状态和属性的方法
  • 尺寸()
  • 是空的()
  • getTexts()//返回可见元素集合文本的数组,例如对于元素:<li>a</li><li hidden>b</li><li>c</li>将返回数组["a", "", "c"]
方法 - 特定收集元素的选择器
  • filterBy(Condition) - 仅返回满足条件的原始集合元素(如ElementsCollection)的集合,例如$$("#multirowTable tr").filterBy(text("Norris"))
  • excludeWith(条件) - 例如$$("#multirowTable tr").excludeWith(text("Chuck"))
  • get(int) - 返回第n个元素(as SelenideElement);
  • findBy(Condition) - 返回SelenideElement满足条件的第一个集合元素(as )。

Selenide gitbook中查找更多细节

com.codeborne.selenide.CollectionCondition [src] [javadoc]

集合条件用于的对象shouldBeshouldHave构造中ElementsCollection建议静态导入所需条件以实现可读代码的所有优点。

  • empty // e.g. $$("#list li").shouldBe(empty)
  • size(int) // e.g. $$("#list li").shouldHave(size(10))
  • sizeGreaterThan(int)
  • sizeGreaterThanOrEqual(int)
  • sizeLessThan(int)
  • sizeLessThanOrEqual(int)
  • sizeNotEqual(int)
  • texts(String... substrings)
  • exactTexts(String... wholeTexts)

Selenide gitbook中查找更多细节

com.codeborne.selenide.WebDriverRunner [src] [javadoc]

这个类定义了一些浏览器管理方法:

  • isChrome()
  • isFirefox()
  • isHeadless()
  • url() - 返回当前URL
  • source() - 返回当前页面的源HTML代码
  • getWebDriver() - 返回WebDriver实例(由Selenide自动创建或由用户设置),从而在需要时向用户提供原始API给Selenium
  • setWebDriver(WebDriver) - 告诉Selenide使用由用户创建的驱动程序。从此时起,用户自己负责关闭驾驶员(例如通过呼叫getWebDriver().quit())。

Selenide gitbook中查找更多细节

com.codeborne.selenide.Configuration [src] [javadoc]

该类包含不同的配置选项来配置基于Selenide的测试的执行,例如:

  • timeout- 以毫秒为单位的等待超时,用于显式(shouldshouldNotwaitUntilwaitWhile)和隐式等待SelenideElement默认设置为4000毫秒; 可以针对特定测试进行更改,例如Configuration.timeout = 6000;
  • collectionsTimeout- 以毫秒为单位的等待超时,用于显式(shouldshouldNotwaitUntilwaitWhile)和隐式等待ElementsCollection默认设置为6000毫秒; 可以针对特定测试进行更改,例如Configuration.collectionsTimeout = 8000;
  • browser(例如"chrome""ie""firefox"
  • baseUrl
  • reportsFolder
  • ...
  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值