https://angiejones.tech
https://TestAutomationU.com
@techgirl1908
Senior Director, Developer Relations
Applitools
Test Automation University
@techgirl1908
@techgirl1908
@techgirl1908
@techgirl1908
<ul id="productList">
<!-- Test Automation in the Real World -->
<li id="pid1" class="ui-li-has-thumb ui-first-child">...</li>
<!-- Experiences of Test Automation -->
<li id="pid2" class="ui-li-has-thumb">...</li>
<!-- Agile Testing -->
<li id="pid3" class="ui-li-has-thumb">...</li>
<!-- How Google Tests Software -->
<li id="pid4" class="ui-li-has-thumb">...</li>
<!-- Java for Testers -->
<li id="pid5" class="ui-li-has-thumb">...</li>
<!-- Advanced Selenium in Java -->
<li id="pid6" class="ui-li-has-thumb">...</li>
<!-- The Cucumber for Java Book -->
<li id="pid7" class="ui-li-has-thumb">...</li>
<!-- BDD in Action -->
<li id="pid8" class="ui-li-has-thumb ui-last-child">...</li>
</ul>
@techgirl1908
@techgirl1908
var element = driver.findElement(
);
@techgirl1908
@techgirl1908
var element = driver.findElement(
withTagName("li").
);
@techgirl1908
@techgirl1908
var element = driver.findElement(
withTagName("li").
toLeftOf(By.id("pid3"))
);
@techgirl1908
@techgirl1908
var element = driver.findElement(
withTagName("li").
toLeftOf(By.id("pid3"))
);
assertEquals("pid2", element.getAttribute("id"));
ComparisonFailure:
Expected :pid2
Actual :pid1
@techgirl1908
@techgirl1908
pid1
pid3
@techgirl1908
var elements = driver.findElements(
withTagName("li").
toLeftOf(By.id("pid3"))
);
System.out.println(
elements.
stream().
map(e->e.getAttribute("id")).
collect(Collectors.toList())
);
[pid1, pid2, pid5, pid6]
@techgirl1908
@techgirl1908
pid1
pid3
pid2
pid5
pid6
var element = driver.findElement(
withTagName("li").
toLeftOf(By.id("pid3")).
toRightOf(By.id("pid1"))
);
assertEquals("pid2", element.getAttribute("id"));
@techgirl1908
var element = driver.findElement(
withTagName("li").
toLeftOf(By.id("pid3")).
toRightOf(By.id("pid1"))
);
assertEquals("pid2", element.getAttribute("id"));
@techgirl1908
@techgirl1908
@techgirl1908
var element = driver.findElement(
withTagName("li").
toLeftOf(By.id("pid3")).
toRightOf(By.id("pid1"))
);
assertEquals("pid2", element.getAttribute("id"));
@techgirl1908
@techgirl1908
@techgirl1908
<div class="view">
<input class="toggle" type="checkbox">
<label>goodbye world</label>
<button class="destroy"></button>
</div>
driver.findElement(
withTagName("input").
toLeftOf(By.xpath("//label[text()='goodbye world']")))
.click();
NoSuchElementException
@techgirl1908
@techgirl1908
@techgirl1908
@techgirl1908
@techgirl1908
@techgirl1908
@techgirl1908
driver.get("https://applitools.com/");
@techgirl1908
driver.get("https://applitools.com/");
driver.switchTo().newWindow(WindowType.TAB);
@techgirl1908
driver.get("https://applitools.com/");
driver.switchTo().newWindow(WindowType.TAB);
driver.get("https://testautomationu.applitools.com");
@techgirl1908
var windows = driver.getWindowHandles();
for(var window : windows){
driver.switchTo().window(window);
if("Automated Visual Testing with Visual AI".equals(driver.getTitle())){
break;
}
}
@techgirl1908
@techgirl1908
@techgirl1908
@techgirl1908
@techgirl1908
@techgirl1908
@techgirl1908
@techgirl1908
ChromeDriver driver = new ChromeDriver();
DevTools devTools = driver.getDevTools();
@techgirl1908
@techgirl1908
ChromeDriver driver = new ChromeDriver();
DevTools devTools = driver.getDevTools();
devTools.createSession();
devTools.send(Emulation.setGeolocationOverride(
Optional.of(35.8235),
Optional.of(-78.8256),
Optional.of(100))
);
driver.get("https://mycurrentlocation.net/");
@techgirl1908
devtools.send(
Network.emulateNetworkConditions(
true,
250,
-1,
-1,
of(ConnectionType.CELLULAR2G)
));
@techgirl1908
@techgirl1908
@techgirl1908
https://angiejones.tech
https://TestAutomationU.com
@techgirl1908
Senior Director, Developer Relations
Applitools
Test Automation University