在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:yandex-qatools/htmlelements开源软件地址:https://github.com/yandex-qatools/htmlelements开源编程语言:Java 100.0%开源软件介绍:Html Elements frameworkThis framework is designed to provide an easy-to-use way of interacting with web-page elements in your tests. It can be considered to be an extension of WebDriver Page Object. With the help of the Html Elements framework you can group web-page elements into blocks, encapsulate logic of interaction within them and then easily use created blocks in page objects. It also provides a set of helpful matchers to use with web-page elements and blocks. See JavaDocs and Samples for more details. You can ask your questions on StackOverflow with the tag. Other LanguagesIn case you are not a Java guy/gal, don't panic, there are still few options:
Release Notes
Include Html Elements in your projectMaven dependencies for Html Elements core: <dependency>
<groupId>ru.yandex.qatools.htmlelements</groupId>
<artifactId>htmlelements-java</artifactId>
<version>1.21.0</version> <!-- 1.21+ is SELENIUM 4.1.0 compatible -->
</dependency> And for Thucydides integration: <dependency>
<groupId>ru.yandex.qatools.htmlelements</groupId>
<artifactId>htmlelements-thucydides</artifactId>
<version>1.21.0</version>
</dependency> Or you can include all modules at once if needed: <dependency>
<groupId>ru.yandex.qatools.htmlelements</groupId>
<artifactId>htmlelements-all</artifactId>
<version>1.21.0</version>
</dependency> Since 1.15 Java 8 is required. Please use 1.14 for Java 7 support. Create blocks of elementsFor example, let's create a block for the search form on the page http://www.yandex.com: @Name("Search form")
@FindBy(xpath = "//form")
public class SearchArrow extends HtmlElement {
@Name("Search request input")
@FindBy(id = "searchInput")
private TextInput requestInput;
@Name("Search button")
@FindBy(className = "b-form-button__input")
private Button searchButton;
public void search(String request) {
requestInput.sendKeys(request);
searchButton.click();
}
} Construct page object using created blocksYou can easily use created blocks in page objects: public class SearchPage {
private SearchArrow searchArrow;
// Other blocks and elements here ...
public SearchPage(WebDriver driver) {
PageFactory.initElements(new HtmlElementDecorator(new HtmlElementLocatorFactory(driver)), this);
}
public void search(String request) {
searchArrow.search(request);
}
// Other methods here ...
} Use page objects in your testsCreated page objects can be used in your tests. This makes tests more concise, easier to maintain, and easy to write. public class SampleTest {
private WebDriver driver = new FirefoxDriver();
private SearchPage searchPage = new SearchPage(driver);
@Before
public void loadPage() {
driver.get("http://www.yandex.com");
}
@Test
public void sampleTest() {
searchPage.search("yandex");
// Some assertion here
}
@After
public void closeDriver() {
driver.quit();
}
} Questions?In case you can't find an answer in documentation and examples provided above, you can ask it on StackOverflow with the tag. |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论