输出是从文本框3中提供的第一个输入获取的,但输出应该基于文本框3输入动态更改

时间:2016-04-19 11:21:45

标签: selenium selenium-webdriver

我们必须为三个文本框提供输入。在两个文本框中,值是静态的,但值在第三个中更改。根据文本框中提供的输入,我们单击“搜索”按钮,结果生成.E.g。 Textbox1:2,Textbox2:3,Textbox3:91,单击“搜索”按钮。页面刷新几秒钟&输出生成。总计数:13。现在再次文本框1:2,文本框2:3,文本框3:92,单击“搜索”按钮。页面刷新几秒钟&输出生成。总计数:17。

但是根据下面的代码,输出是13。 请让我知道代码中的问题。我无法纠正它。

if (myFixedNumbers[0]==91){
 driver.findElement(By.id("txtPortal")).sendKeys(Integer.toString(myFixedNumbers[0]));
 driver.findElement(By.id("btnSearch")).click();
 // use it just before the sendkeys code like this
 wait.until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.xpath("//*[@id='dvCount']/span[2]")));
 String text1 = driver.findElement(By.xpath("//*[@id='dvCount']/span[2]")).getText();
 System.out.println(text1);

 }

if (myFixedNumbers[1]==92){
 driver.findElement(By.id("txtPortal")).clear();
 driver.findElement(By.id("txtPortal")).sendKeys(Integer.toString(myFixedNumbers[1]));
 driver.findElement(By.id("btnSearch")).click();
 // use it just before the sendkeys code like this
 //wait.until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.xpath("//*[@id='dvCount']/span[2]")));
 String text2 = driver.findElement(By.xpath("//*[@id='dvCount']/span[2]")).getText();
 System.out.println(text2);

 }

3 个答案:

答案 0 :(得分:0)

在第二个if块中,等待代码被注释。因此,代码将尝试从框中检索值,而不必等到页面加载。因此,请尝试取消注释wait语句并检索值。

答案 1 :(得分:0)

嗨试试这个会起作用

if (myFixedNumbers[0] == 91) {
            driver.findElement(By.id("txtPortal")).sendKeys(Integer.toString(myFixedNumbers[0]));
            driver.findElement(By.id("btnSearch")).click();
            // use it just before the sendkeys code like this
            wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@id='dvCount']/span[2]")));
            String text1 = driver.findElement(By.xpath("//*[@id='dvCount']/span[2]")).getText();
            System.out.println("Output 1 : " + text1);
        } 
        if (myFixedNumbers[1] == 92) {
            Thread.sleep(1000);
            driver.findElement(By.id("txtPortal")).clear();
            driver.findElement(By.id("txtPortal")).sendKeys(Integer.toString(myFixedNumbers[1]));
            driver.findElement(By.id("btnSearch")).click();
            // use it just before the sendkeys code like this
            wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@id='dvCount']/span[2]")));
            String text2 = driver.findElement(By.xpath("//*[@id='dvCount']/span[2]")).getText();
            System.out.println("Output 2 : " + text2);
        }

答案 2 :(得分:0)

我已插入Thread.Sleep并删除了等待代码。现在工作正常。