Как нажимать на кнопки Dynami c, когда выполняется определенное условие WebElement - PullRequest
0 голосов
/ 20 апреля 2020

Ниже приведен код HTML для веб-страницы.

<div class="clickme" style="cursor:pointer; " id="qwer1234" title="" data-placement="bottom" data-toggle="tooltip" mode="">
        <div class="title">
            <a target="_blank" class="color" href="http://www.test.com">Test1</a> requested <a href="http://www.test.com">HolidayApproval</a></div>
            <div class="msg-time"><small><a rel="tooltip" data-placement="right" title="" class="site-color6" href="#" data-original-title=" 3:54:24 AM">1 day ago</a> 2020 to March 30, 2020 )</small></div>
            Auto Approval            <br>
            <div class="btn" id="qwert4567">
                <a id="HolidayAccept" class="button" href="javascript:void(0);">APPROVE</a><a id="qwer5678" class="test" href="javascript:void(0);">REJECT</a>                </div>    
            </div>

и

<div class="btn" id="qwer6789">
                <a id="HolidayAccept" class="test21" href="javascript:void(0);">APPROVE</a><a id="qwer7890" class="test" href="javascript:void(0);">REJECT</a>                </div>

Я выполняю программу, основанную на условии, что если отображается определенный текст, то я должен нажать на кнопки Dynami c. Если приведенное ниже условие истинно

driver.findElements (By.xpath ("// div [начинается с (@ id, 'qwer')] // a [содержит (text (), 'Праздник') )] "));

Затем я нажму на все кнопки на странице

driver.findElement (By.xpath (" // a [начинается с (@id, ') HolidayReject ')] ")). Click ();

Ниже приведена программа для этого. После запуска этой программы она выполняет операторы в блоке else вместо блока if {}. Может кто-нибудь, пожалуйста, дайте мне знать, как нажимать на кнопки отклонения, которые находятся внутри блока {}?

package Leaves;

import java.util.List;
import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;

public class Leaves {

    public static void main(String[] args) {


        System.setProperty("webdriver.chrome.driver","F:\\Drivers\\chromedriver_win32\\chromedriver.exe");
        WebDriver driver = new ChromeDriver();

        driver.get("http//www.testing.com");

        driver.manage().window().maximize();
        driver.manage().deleteAllCookies();

        driver.manage().timeouts().pageLoadTimeout(100, TimeUnit.SECONDS);
        driver.manage().timeouts().implicitlyWait(100, TimeUnit.SECONDS);

        driver.findElement(By.xpath("//input[@id = 'UserLogin_username']")).sendKeys("test");
        driver.findElement(By.xpath("//input[@id = 'UserLogin_password']")).sendKeys("test");
        driver.findElement(By.xpath("//button[@id = 'login-submit']")).click();

        driver.findElement(By.xpath("//df[@id = 'dashboard-header-open']")).click();
        driver.findElement(By.xpath("//img[@src = '/images/Icons_latest/pending-action.png']")).click();


        List <WebElement> linklist = driver.findElements(By.xpath
                ("//div[starts-with(@id,'5e9b7')]//a[contains(text(),'Holiday')]"));

        //List <WebElement> linklist = driver.findElements(By.tagName("div"));
        System.out.println(linklist.size());

        for(int i=0 ; i<linklist.size(); i++) {
            String linkText = linklist.get(i).getText();
            System.out.println(linkText);

            if(linkText == "Holiday") {
                driver.findElement(By.xpath("//a[starts-with(@id,'qwer')]")).click();
                System.out.println("Approvals rejected");
            }
            else {
                **strong text**System.out.println("Nothing to click");
            }
        }

        System.out.println("program reached end successfully");

        driver.quit();
        // TODO Auto-generated method stub

    }

}

1 Ответ

0 голосов
/ 20 апреля 2020

Вместо == для сравнения String с использованием .equals:

if(linkText.equals("Holiday")) {
    //
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...