当前位置: 首页 > 知识库问答 >
问题:

当某一WebElement条件为真时,如何点击动态按钮

禄仲渊
2023-03-14

下面是网页的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>

我正在执行一个基于这样一个条件的程序:如果某个文本被显示,那么我必须点击动态按钮。如果下列条件为真

driver.findElements(by.xpath(“//div[starts-with(@id,'qwer')]//a[contains(text(),'holiday')]”);

然后我会点击页面上的所有按钮

下面是这方面的程序。运行此程序后,它将执行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个答案

曾云
2023-03-14

使用.equals比较字符串而不是==

if(linkText.equals("Holiday")) {
    //
}
 类似资料:
  • 我想创建一个下拉列表和一个按钮,功能是当我点击按钮,然后按钮不是可点击的意思是禁用,它是显示,首先点击下拉列表。然后按钮是启用的。我们如何使我尝试但没有发生,我没有太多的想法。所以任何机构帮助我解决这个问题。 我试过这个jquery函数我对jquery不太了解。所以谁来帮帮我。

  • 问题内容: 如果我在if块内创建变量,则以后将无法使用它。如果我在if块之前创建一个变量,而if块的计算结果为false,则会出现“变量已创建且未使用”的错误。 我敢肯定,这是设计使然,我正在尝试做我不应该做的事情,但是我想做的事情背后的逻辑对我来说很有意义。如果url中有页面信息,我以后想在sql语句中使用它,但是如果url中没有页面信息,则不需要这些变量。 http://pastebin.co

  • 我当前正在尝试将进度条插入到我的Java GUI中。但是,当我点击“开始”按钮时,进度条并没有运行。在cmd中运行的所有不同的批处理文件都必须完成,然后进度条才会运行。但这又有什么意义呢?我希望它运行时,“开始”按钮被按下,当所有不同的批处理文件运行在cmd结束,进度条也停止。 这是我的代码: 所以按理说...当单击“开始”按钮时,应显示startTime,进度条应运行。但是,只有当cmd中的所有

  • null 当应用程序正在消费消息时,但随后consumeEnabled变成false的情况就没有必要考虑了。 请定义用Spring Kafka和\或Kafka Java客户机实现决策的最佳方式

  • 问题内容: 我正在使用以下查询: 但是,我也想将其作为条件,因此它将执行以下操作: 如果 不到20分钟前()。 正确: 更新,添加一个,然后更新。 False: 所有字段均应保持相同。 我不太确定该怎么做,但是环顾四周之后,我尝试在零件中使用“声明” 。 但是我收到以下错误: 问题答案: 您使用的IF语句不正确 因此,IF检查条件并返回作为其参数提供的两个值之一。参见MySQL的流控制运算符。