seleniumQuery
Cross-Driver jQuery-like Java interface for Selenium WebDriver
seleniumQuery is a Java library/framework that brings a cross-driver jQuery-like interface for Selenium WebDriver.
Example snippet:
// getting the value
String oldStreet = $("input.street").val();
// setting the value
$("input.street").val("4th St!");
No special configuration needed - use it in your project right now:
On a regular WebElement…
// an existing WebElement...
WebElement existingWebElement = driver.findElement(By.id("myId"));
// call jQuery functions
String elementVal = $(existingWebElement).val();
boolean isButton = $(existingWebElement).is(":button"); // enhanced selector!
for (WebElement child: $(existingWebElement).children()) {
System.out.println("That element's child: "+child);
}
Or an existing WebDriver…
// an existing WebDriver...
WebDriver driver = new FirefoxDriver();
// set it up
$.driver().use(driver);
// and use all the goods
for (WebElement e: $(".myClass:contains('My Text!'):not(:button)")) {
System.out.println("That element: " + e);
}
What can you do with it?
Allows querying elements by:
- CSS3 Selectors -
$(".myClass"),$("#table tr:nth-child(3n+1)"); - jQuery/Sizzle enhancements -
$(":text:eq(3)"),$(".myClass:contains('My Text!')"); - XPath -
$("//div/*/label/preceding::*"); - and even some own seleniumQuery selectors:
$("#myOldDiv").is(":not(:present)").
Built using Selenium WebDriver’s native capabilities only:
- No
jQuery.jsis embedded at the page, no side-effects are generated;- Doesn’t matter if the page uses jQuery or not (or even if the JavaScript global variable
$is other library likePrototype.js).
- Doesn’t matter if the page uses jQuery or not (or even if the JavaScript global variable
- Capable of handling/testing JavaScript-disabled pages
- Test pages that use Unobtrusive JavaScript.
- Most functions don’t even require the browser/driver to have JavaScript enabled!
Quickstart: A running example
Try it out now with the running example below:
Download and execute the seleniumQuery showcase project
…and see seleniumQuery in action right now.
To get the latest version, add to your pom.xml:
<dependency>
<groupId>io.github.seleniumquery</groupId>
<artifactId>seleniumquery</artifactId>
<version>0.20.0</version>
</dependency>