Я пытался нажать на кнопку, используя все методы. Но я не могу нажать на нее - PullRequest
0 голосов
/ 10 февраля 2020
<button class="md-icon-button md-button md-ink-ripple" 
        type="button" ng-transclude="" ng-click="hide()">   
    <i class="fa fa-remove ng-scope"></i>   
</button>

Код StepDefinition:

@And("^Check whether the Alert message display properly$")
public void alert_msg_display() throws Throwable {
    WebElement x= driver.findElement(By.xpath("//button[@data-hover='LOGIN NOW']")); // Path of login button
    actionClick(driver, x); // To click login button
    WebElement y= driver.findElement(By.xpath("//div[@class='md-dialog-content ng-binding']")); // Path of Alert message text
    String a = y.getText(); 
    WebElement z= driver.findElement(By.xpath("//i[@class='fa fa-remove ng-scope']")); // Path of close button of alert popup
    waitClick(driver, z); // To wait until close button display
    actionClick(driver, z); // Click on close (Note:This operation get FAILED)
    String a1 = "Please Enter Branch Id";
    driver.findElement(By.xpath("//input[@ng-model='Branchid']")).sendKeys("HO");
    actionClick(driver, x);
    String b = y.getText();
    waitClick(driver, z);
    actionClick(driver, z);;    
    String b1 = "Please Enter Username (Email Id)";
   if (a.equals(a1) && b.equals(b1))
        test.log(LogStatus.PASS, "Test Case ID: LOG_006 to LOG_010 - Pass");
    else
        test.log(LogStatus.FAIL, "Test Case ID: LOG_006 to LOG_010 - Fail");
}

Файл бегуна

public void actionClick(WebDriver driver, WebElement a) {
    Actions action = new Actions(driver);
    action.moveToElement(a).click().build().perform();
}
public void waitClick(WebDriver driver, WebElement a) {
    WebDriverWait wait = new WebDriverWait(driver,10);
    wait.until(ExpectedConditions.visibilityOf(a));
}

Alert Popup Screenshot

Я пытался нажать кнопку, используя метод .click, метод Actions, метод JSExecutor, а также использовал Wait ... Но я не могу нажать кнопку. Пожалуйста, оставьте ваши ценные комментарии. Заранее спасибо ...

Ответы [ 2 ]

1 голос
/ 10 февраля 2020

Должен работать при нажатии клавиш ESCAPE. Пожалуйста, попробуйте ниже: Могут работать следующие 2 способа:

Получение локатора элемента этого изображения -> Отправить Escape на элемент.

WebElement loginimg = driver.findElement (By.id (" AlertX ")); loginimg.sendKeys (Keys.ESCAPE);

или

Вы можете нажать клавишу Escape на Java Класс робота, как показано ниже:

import java .awt.Robot ; import java .awt.event.KeyEvent;

Robot r = new Robot (); r.keyPress (KeyEvent.VK_ESCAPE);

r.keyRelease (KeyEvent.VK_ESCAPE);

1 голос
/ 10 февраля 2020

из моих наблюдений становится ясно, что это не обычное предупреждение браузера (если оно есть, то мы не можем проверить элементы в нем), поэтому коды, связанные с предупреждением о селене, здесь не будут работать (например, драйвер). switchToAlert () выдаст Нет такого предупреждения).

Попробуйте нажать, используя следующий фрагмент кода, это может сработать

WebElement z= driver.findElement(By.xpath("//button[@class='md-icon-button md-button md-ink-ripple']"));
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].click();", z);
...