Java 类org.openqa.selenium.WebElement 实例源码
项目:marathonv5
文件:JavaDriverTest.java
public void click() throws Throwable {
driver = new JavaDriver();
SwingUtilities.invokeAndWait(new Runnable() {
@Override public void run() {
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
WebElement element1 = driver.findElement(By.name("click-me"));
element1.click();
AssertJUnit.assertTrue(buttonClicked);
buttonClicked = false;
new Actions(driver).click().perform();
AssertJUnit.assertTrue(buttonClicked);
AssertJUnit.assertTrue(buttonMouseActions.toString().contains("clicked(1)"));
buttonMouseActions.setLength(0);
new Actions(driver).contextClick().perform();
AssertJUnit.assertTrue(buttonMouseActions.toString(), buttonMouseActions.toString().contains("pressed(3-popup)"));
}
项目:ats-framework
文件:HiddenHtmlTable.java
/**
* @return how many rows this table has
*/
@Override
@PublicAtsApi
public int getRowCount() {
new HiddenHtmlElementState(this).waitToBecomeExisting();
String css = this.getElementProperty("_css");
List<WebElement> elements = null;
if (!StringUtils.isNullOrEmpty(css)) {
css += " tr";
elements = webDriver.findElements(By.cssSelector(css));
} else {
// get elements matching the following xpath
elements = webDriver.findElements(By.xpath(properties.getInternalProperty(HtmlElementLocatorBuilder.PROPERTY_ELEMENT_LOCATOR)
+ "/tr | "
+ properties.getInternalProperty(HtmlElementLocatorBuilder.PROPERTY_ELEMENT_LOCATOR)
+ "/*/tr"));
}
return elements.size();
}
项目:testing_security_development_enterprise_systems
文件:GitCrawler.java
private static WebElement getElement(WebDriver driver, By by, int current){
WebElement element = null;
while(true) {
try {
element = driver.findElement(by);
} catch (Exception e){
//might happen due to Github blocking crawling
try {
long time = 60_000;
System.out.println("Cannot find -> "+by.toString()+"\n Going to wait for "+time+"ms");
Thread.sleep(time);
openPagedSearchResult(driver, current);
} catch (InterruptedException e1) {
}
continue;
}
break;
}
return element;
}
项目:ats-framework
文件:RealHtmlElement.java
/**
* Drag and drop an element on top of other element
* @param targetElement the target element
*/
@Override
@PublicAtsApi
public void dragAndDropTo(
HtmlElement targetElement ) {
new RealHtmlElementState(this).waitToBecomeExisting();
WebElement source = RealHtmlElementLocator.findElement(this);
WebElement target = RealHtmlElementLocator.findElement(targetElement);
Actions actionBuilder = new Actions(webDriver);
Action dragAndDropAction = actionBuilder.clickAndHold(source)
.moveToElement(target, 1, 1)
.release(target)
.build();
dragAndDropAction.perform();
// drops the source element in the middle of the target, which in some cases is not doing drop on the right place
// new Actions( webDriver ).dragAndDrop( source, target ).perform();
}
项目:marathonv5
文件:JavaDriverTest.java
public void isEnabled() throws Throwable {
driver = new JavaDriver();
SwingUtilities.invokeAndWait(new Runnable() {
@Override public void run() {
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
WebElement element1 = driver.findElement(By.name("click-me"));
AssertJUnit.assertTrue(element1.isEnabled());
SwingUtilities.invokeAndWait(new Runnable() {
@Override public void run() {
button.setEnabled(false);
}
});
EventQueueWait.waitTillDisabled(button);
AssertJUnit.assertFalse(element1.isEnabled());
}
项目:selenide-appium
文件:SelenideAppiumFieldDecorator.java
@Override
public Object decorate(ClassLoader loader, Field field) {
By selector = new Annotations(field).buildBy();
if (selector instanceof ByIdOrName) {
// throw new IllegalArgumentException("Please define locator for " + field);
return decorateWithAppium(loader, field);
} else if (WebElement.class.isAssignableFrom(field.getType())) {
return ElementFinder.wrap(searchContext, selector, 0);
} else if (ElementsCollection.class.isAssignableFrom(field.getType())) {
return new ElementsCollection(new BySelectorCollection(searchContext, selector));
} else if (ElementsContainer.class.isAssignableFrom(field.getType())) {
return createElementsContainer(selector, field);
} else if (isDecoratableList(field, ElementsContainer.class)) {
return createElementsContainerList(field);
} else if (isDecoratableList(field, SelenideElement.class)) {
return SelenideElementListProxy.wrap(factory.createLocator(field));
}
return decorateWithAppium(loader, field);
}
项目:SneakerBot
文件:Adidas.java
public void atc() {
WebDriverWait wait = new WebDriverWait(driver, 300L);
wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//*[@class='ffSelectButton' and (.//span[text()[contains(.,'Size')]] or .//span[text()[contains(.,'size')]])]")));
int index = new Random().nextInt(sizes.length);
String sizeToPick = Double.toString(sizes[index]);
for(WebElement e : driver.findElements(By.xpath("//div[@class='ffSelectMenuMid' and .//ul[.//li[.//span[text()[contains(.,'size')]]]]]/ul/li"))) {
String size = e.getText().trim();
if(size != null && size.equals(sizeToPick)) {
e.click();
break;
}
}
}
项目:ats-framework
文件:RealHtmlMultiSelectList.java
/**
* select a value
*
* @param value the value to select
*/
@Override
@PublicAtsApi
public void setValue(
String value ) {
new RealHtmlElementState(this).waitToBecomeExisting();
try {
WebElement element = RealHtmlElementLocator.findElement(this);
Select select = new Select(element);
select.selectByVisibleText(value);
} catch (NoSuchElementException nsee) {
throw new SeleniumOperationException("Option with label '" + value + "' not found. ("
+ this.toString() + ")");
}
UiEngineUtilities.sleep();
}
项目:POM_HYBRID_FRAMEOWRK
文件:FlightReservation_Login.java
private WebElement get_password() {
WebElement element = null;
if (WebUtilities.waitForElementToAppear(driver, password, logger)) {
element = password;
}
return element;
}
项目:AutomationFrameworkTPG
文件:BasePage.java
protected void waitForElementToNotExist(WebElement element) {
new WebDriverWait(getDriverProxy(), 20)
.withMessage("Timed out waiting for element to not exist.")
.until((WebDriver d) -> {
boolean conditionMet = false;
try {
// We don't really care whether it's displayed or not, just if it exists.
element.isDisplayed();
} catch (NoSuchElementException | StaleElementReferenceException e) {
conditionMet = true;
}
return conditionMet;
});
}
项目:BrainBridge
文件:BrainInstance.java
/**
* Posts the given message to the brain chat.
*
* @param message
* The message to post
*/
public void postMessage(final String message) {
updateLastUsage();
switchToWindow();
switchToFrame(CHAT_INPUT_FRAME_NAME);
final WebElement input = new NamePresenceWait(this.mDriver, CHAT_INPUT_NAME).waitUntilCondition();
input.sendKeys(message);
input.sendKeys(Keys.ENTER);
}
项目:POM_HYBRID_FRAMEOWRK
文件:MouseOperations.java
public static void hoverMouseOnWebElement(WebDriver driver, ExtentTest logger, WebElement element) {
try {
Actions action = new Actions(driver);
action.moveToElement(element).build().perform();
} catch (Exception e) {
logger.log(LogStatus.ERROR, "Error hovering over the element</br>" + e.getCause());
}
}
项目:Selenium-Foundation
文件:WebDriverUtils.java
/**
* Remove hidden elements from specified list
*
* @param elements list of elements
* @return 'true' if no visible elements were found; otherwise 'false'
*/
public static boolean filterHidden(List<WebElement> elements) {
Iterator<WebElement> iter = elements.iterator();
while (iter.hasNext()) {
if ( ! iter.next().isDisplayed()) {
iter.remove();
}
}
return elements.isEmpty();
}
项目:marathonv5
文件:JMenuHorizontalTest.java
public void clicksOnMenus() throws Throwable {
driver = new JavaDriver();
List<WebElement> menus = driver.findElements(By.cssSelector("menu"));
int i = 0;
clicksOnMenu(menus, i++, "Menu 1");
clicksOnMenu(menus, i++, "Menu 2");
clicksOnMenu(menus, i++, "Menu 3");
}
项目:kheera
文件:TestExecutionController.java
@Override
public boolean checkCssClassDoesNotContain(WebElement w, String... args) throws Exception {
startTime();
boolean result = currentPage.checkCssClassDoesNotContain(w, args);
this.setNextPage();
return result;
}
项目:ats-framework
文件:RealHtmlElement.java
/**
* Simulate Tab key
*/
@Override
@PublicAtsApi
public void pressTabKey() {
new RealHtmlElementState(this).waitToBecomeExisting();
WebElement element = RealHtmlElementLocator.findElement(this);
element.sendKeys(Keys.TAB);
}
项目:Cognizant-Intelligent-Test-Scripter
文件:AutomationObject.java
public WebElement findElement(SearchContext element, String objectKey, String pageKey, String Attribute, FindType condition) {
pageName = pageKey;
objectName = objectKey;
findType = condition;
return getElementFromList(findElements(element,
getORObject(pageKey, objectKey), Attribute));
}
项目:bootstrap
文件:TAbstractSeleniumTest.java
@Test
public void testAssertElementAttribute() {
final WebElement webElement = Mockito.mock(WebElement.class);
Mockito.when(webElement.getAttribute(ArgumentMatchers.any())).thenReturn(null).thenReturn("value");
Mockito.when(mockDriver.findElement(ArgumentMatchers.any())).thenReturn(webElement);
assertElementAttribute("value", null, null);
}
项目:marathonv5
文件:JTextAreaTest.java
void getAttributes() throws Throwable {
driver = new JavaDriver();
WebElement textArea = driver.findElement(By.cssSelector("text-area"));
AssertJUnit.assertEquals("true", textArea.getAttribute("editable"));
textArea.sendKeys("Systems", Keys.SPACE);
String previousText = textArea.getText();
textArea.clear();
textArea.sendKeys("Jalian" + previousText);
}
项目:spring-reactive-sample
文件:HomePage.java
public List<Attribute> attributes() {
List<Attribute> rows = new ArrayList<>();
for (WebElement tr : this.trs) {
rows.add(new Attribute(tr));
}
this.attributes.addAll(rows);
return this.attributes;
}
项目:Selenium-Foundation
文件:JsUtilityTest.java
private String getMetaTagNamed(WebDriver driver, String name) {
JsUtility.injectGlueLib(driver);
String script = JsUtility.getScriptResource("requireMetaTagByName.js");
try {
WebElement response = JsUtility.runAndReturn(driver, script, name);
return response.getAttribute("content");
} catch (WebDriverException e) {
throw JsUtility.propagate(e);
}
}
项目:phoenix.webui.framework
文件:SeleniumIFrameLocator.java
@Override
public WebElement findElement(SearchContext driver)
{
if(!(driver instanceof WebDriver))
{
throw new IllegalArgumentException("Argument must be instanceof WebDriver.");
}
WebDriver webDriver = (WebDriver) driver;
webDriver = engine.turnToRootDriver(webDriver);
if(!iframeWait(webDriver, getTimeout(), getValue()))
{
webDriver.switchTo().frame(getValue());
}
return null;
}
项目:SWET
文件:SwetTest.java
@Test
public void testChangeElementSelectedBy() {
driver.get(utils.getResourceURI("ElementSearch.html"));
utils.injectScripts(Optional.<String> empty());
WebElement target = wait.until(
ExpectedConditions.visibilityOf(driver.findElement(By.tagName("h1"))));
utils.highlight(target);
// Act
utils.inspectElement(target);
// Assert
List<String> labels = driver
.findElements(By.cssSelector("form#SWDForm label[for]")).stream()
.map(e -> e.getAttribute("for")).collect(Collectors.toList());
String lastLabel = null;
Collections.sort(labels, String.CASE_INSENSITIVE_ORDER);
for (String label : labels) {
utils.sleep(100);
WebElement radioElement = wait.until(ExpectedConditions.visibilityOf(
driver.findElement(By.xpath(String.format("//*[@id='%s']", label)))));
assertThat(radioElement, notNullValue());
radioElement.click();
lastLabel = label;
}
utils.completeVisualSearch("changing strategy attribute");
// Assert
String payload = utils.getPayload();
assertFalse(payload.isEmpty());
Map<String, String> details = new HashMap<>();
utils.readData(payload, Optional.of(details));
verifyNeededKeys(details);
verifyEntry(details, "ElementSelectedBy", lastLabel);
}
项目:hippo
文件:DatasetPageElements.java
@Override
public WebElement getElementByName(String elementName, int nth, WebDriver webDriver) {
List<WebElement> elements = webDriver.findElements(pageElements.get(elementName));
if (elements.size() == 0) {
return null;
}
return elements.get(nth);
}
项目:selenium-toys
文件:TypeTest.java
@Test
public void onTest() {
final WebDriver webDriver = Mockito.mock(WebDriver.class);
final WebElement webElement = Mockito.mock(WebElement.class);
final Type type = new Type(webDriver, "text", () -> {});
final By byId = By.id("id");
Mockito.when(webDriver.findElement(byId)).thenReturn(webElement);
type.on(byId);
Mockito.verify(webElement).sendKeys("text");
}
项目:marathonv5
文件:JavaDriverTest.java
public void getLocation() throws Throwable {
driver = new JavaDriver();
SwingUtilities.invokeAndWait(new Runnable() {
@Override public void run() {
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
WebElement element1 = driver.findElement(By.name("click-me"));
Point location = element1.getLocation();
java.awt.Point p = EventQueueWait.call(button, "getLocation");
AssertJUnit.assertEquals(p.x, location.x);
AssertJUnit.assertEquals(p.y, location.y);
}
项目:POM_HYBRID_FRAMEOWRK
文件:FlightReservation_Login.java
private WebElement get_signInButton() {
WebElement element = null;
if (WebUtilities.waitForElementToAppear(driver, signInButton, logger)) {
element = signInButton;
}
return element;
}
项目:BrainBridge
文件:BrainInstance.java
/**
* Shuts this instance down and frees all used resources.
*/
public void shutdown() {
switchToWindow();
switchToFrame(CHAT_INPUT_FRAME_NAME);
final WebElement logoutAnchor = new CSSSelectorPresenceWait(this.mDriver, LOGOUT_ANCHOR).waitUntilCondition();
logoutAnchor.click();
this.mDriver.close();
}
项目:hippo
文件:SiteSteps.java
@Then("I can download(?: following files)?:")
public void iCanDownload(final DataTable downloadTitles) throws Throwable {
for (List<String> downloadLink : downloadTitles.asLists(String.class)) {
String linkText = downloadLink.get(0);
String linkFileName = downloadLink.get(1);
WebElement downloadElement = sitePage.findElementWithTitle(linkText);
assertThat("I can find download link with title: " + linkText,
downloadElement, is(notNullValue()));
String url = downloadElement.getAttribute("href");
assertEquals("I can find link with expected URL for file " + linkFileName, URL + urlLookup.lookupUrl(linkFileName), url);
if (acceptanceTestProperties.isHeadlessMode()) {
// At the moment of writing, there doesn't seem to be any easy way available to force Chromedriver
// to download files when operating in headless mode. It appears that some functionality has been
// added to DevTools but it's not obvious how to trigger that from Java so, for now at least,
// we'll only be testing file download when operating in a full, graphical mode.
//
// See bug report at https://bugs.chromium.org/p/chromium/issues/detail?id=696481 and other reports
// available online.
log.warn("Not testing file download due to running in a headless mode, will just check link is present.");
} else {
// Trigger file download by click the <a> tag.
sitePage.clickOnElement(downloadElement);
final Path downloadedFilePath = Paths.get(acceptanceTestProperties.getDownloadDir().toString(),
linkFileName);
waitUntilFileAppears(downloadedFilePath);
}
}
}
项目:ats-framework
文件:RealHtmlElement.java
/**
* Simulate mouse double click action
*/
@Override
@PublicAtsApi
public void doubleClick() {
new RealHtmlElementState(this).waitToBecomeExisting();
WebElement element = RealHtmlElementLocator.findElement(this);
new Actions(webDriver).doubleClick(element).perform();
}
项目:bootstrap
文件:TAbstractSeleniumTest.java
@Test
public void testAssertSelectedText() {
final WebElement webElement = Mockito.mock(WebElement.class);
Mockito.when(mockDriver.findElement(ArgumentMatchers.any())).thenReturn(webElement);
Mockito.when(webElement.getTagName()).thenReturn("select");
final List<WebElement> items = new ArrayList<>();
items.add(webElement);
Mockito.when(webElement.findElements(ArgumentMatchers.any())).thenReturn(items);
Mockito.when(webElement.isSelected()).thenReturn(true);
Mockito.when(webElement.getText()).thenReturn("text");
assertSelectedText("text", null);
}
项目:devtools-driver
文件:ExampleMobileSafariWebTest.java
public static void main(String[] args) throws Exception {
// Create a DesiredCapabilities object to request specific devices from the WebDriver server.
// A udid can be optionally specified, otherwise an arbitrary device is chosen.
DesiredCapabilities caps = new DesiredCapabilities();
// caps.setCapability("uuid", udid);
// Start a WebDriver session. The local machine has to be running the SafariDriverServer, or
// change localhost below to an IP running the SafariDriverServer.
driver = new RemoteWebDriver(new URL("http://localhost:5555/wd/hub"), caps);
// Connect to a URL
driver.get("http://www.google.com");
// Interact with the web page. In this example use case, the Webdriver API is used to find
// specific elements, test a google search and take a screenshot.
driver.findElement(By.id("hplogo"));
// Google New York
WebElement mobileSearchBox = driver.findElement(By.id("lst-ib"));
mobileSearchBox.sendKeys("New York");
WebElement searchBox;
try {
searchBox = driver.findElement(By.id("tsbb"));
} catch (NoSuchElementException e) {
searchBox = driver.findElement(By.name("btnG"));
}
searchBox.click();
takeScreenshot();
driver.navigate().refresh();
takeScreenshot();
// Quit the WebDriver instance on completion of the test.
driver.quit();
driver = null;
}
项目:teasy
文件:SelectImpl.java
@Override
public void selectByAnotherTextThan(final String text) {
final org.openqa.selenium.support.ui.Select select = wrappedSelect();
final List<WebElement> options = select.getOptions();
for (int i = options.size() - 1; i >= 0; i--) {
final WebElement each = options.get(i);
if (!each.getText().equals(text)) {
select.selectByIndex(i);
return;
}
}
}
项目:marathonv5
文件:JTableTest.java
public void tableCellEditSelectByProps() throws Throwable {
driver = new JavaDriver();
String selector = "{ \"select\": \"{2, Sport}\" }";
WebElement cell = driver.findElement(By.cssSelector("table::select-by-properties('" + selector + "')::editor"));
AssertJUnit.assertEquals("text-field", cell.getTagName());
cell.clear();
cell.sendKeys("Hello World", Keys.ENTER);
cell = driver.findElement(By.cssSelector("table::mnth-cell(3,3)"));
AssertJUnit.assertEquals("Hello World", cell.getText());
cell = driver.findElement(By.cssSelector("table::mnth-cell(3,5)"));
AssertJUnit.assertEquals("boolean-renderer", cell.getTagName());
cell = driver.findElement(By.cssSelector("table::mnth-cell(3,5)::editor"));
AssertJUnit.assertEquals("check-box", cell.getTagName());
}
项目:kheera
文件:TestExecutionController.java
@Override
public boolean clickElement(WebElement w) throws Exception {
startTime();
boolean result = currentPage.clickElement(w);
this.setNextPage();
return result;
}
项目:SilkAppDriver
文件:ExceptionTests.java
@After
public void closeApp() {
WebElement fileMenu = driver.findElement(By.xpath("//Menu[@caption='File']"));
fileMenu.click();
WebElement exit = driver.findElement(By.xpath("//MenuItem[@caption='Exit']"));
exit.click();
driver.quit();
}
项目:marathonv5
文件:JMenuHorizontalTest.java
private void assertClicksOnMenuItemsInSubMenu(WebElement menu) throws Throwable {
menu.click();
List<WebElement> includeSubMenus = driver.findElements(By.cssSelector("menu"));
AssertJUnit.assertEquals(4, includeSubMenus.size());
WebElement subMenu = includeSubMenus.get(3);
AssertJUnit.assertEquals("Submenu", subMenu.getText());
List<WebElement> menuItems = driver.findElements(By.cssSelector("menu-item"));
AssertJUnit.assertEquals(3, menuItems.size());
menu.click();
assertClicks(menu, subMenu, 3);
}
项目:colibri-ui-template
文件:AndroidDynamicFieldSteps.java
@Step
@Then("значение динамического поля \"$field\" равно \"$expectedValue\"")
public void stepCheckValueInDynamicFields(@Named("$field") String field, @Named("$expectedValue") String expectedValue) {
IElement parent = getCurrentPage().getElementByName(field);
IElement nested = pageProvider.getPageByName(DYNAMIC_FIELDS_PAGE_NAME).getElementByName(EDIT_TEXT_NAME);
WebElement elementFound = finder.findNestedWebElement(parent, nested);
String actualElement = elementFound.getText();
assertEquals(format("Значение поля [%s] не соответствует ожидаемому [%s]", actualElement, expectedValue), expectedValue, actualElement);
}
项目:marathonv5
文件:JavaDriverTest.java
public void elementSendKeys() throws Throwable {
driver = new JavaDriver();
SwingUtilities.invokeAndWait(new Runnable() {
@Override public void run() {
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
AssertJUnit.assertEquals("", EventQueueWait.call(textField, "getText"));
WebElement element1 = driver.findElement(By.name("text-field"));
element1.sendKeys("Hello", " ", "World");
AssertJUnit.assertEquals("Hello World", EventQueueWait.call(textField, "getText"));
}
项目:marathonv5
文件:JTableTest.java
public void getheader() throws Throwable {
driver = new JavaDriver();
WebElement header = driver.findElement(By.cssSelector("table::header"));
AssertJUnit.assertEquals(5 + "", header.getAttribute("count"));
WebElement header2 = driver.findElement(By.cssSelector("table-header"));
AssertJUnit.assertEquals(5 + "", header2.getAttribute("count"));
}