如何使用webdriver为网页中的元素创建变量

时间:2014-07-11 18:32:31

标签: java selenium

我正在使用webdriver在网页中查找元素。 该网页包含不同的元素。

所以要找到一个使用此代码的元素:

try {
              driver.findElement(By.linkText("Item2")).isDisplayed();
              System.out.println("Item2 element is displayed");
              driver.findElement(By.linkText("Item2")).click(); 
              } catch(NoSuchElementException e) { 
              System.out.println("--WARNING--The Item2 element is not displayed"); 
              } finally{ 
              System.out.println("Now Add Item2 to the Cart"); 
              }

try {
              driver.findElement(By.linkText("Item1")).isDisplayed();
              System.out.println("Item1 element is displayed");
              driver.findElement(By.linkText("Item1")).click(); 
              } catch(NoSuchElementException e) { 
              System.out.println("--WARNING--The Item1 element is not displayed"); 
              } finally{ 
              System.out.println("Now Add Item1 to the Cart"); 
              }

它运作良好。 但我想知道是否可以为元素创建一个变量" Item1"和" Item2" 目标是在我的代码开头使用一个对象列表,然后只使用thr try catch块中的对象。

类似的东西:

String I1; // Item1 字符串I2; //用于Item2

并将它们用作

try {
              driver.findElement(By.linkText("I1")).isDisplayed();
              System.out.println("Item1 element is displayed");
              driver.findElement(By.linkText("I1")).click(); 
              } catch(NoSuchElementException e) { 
              System.out.println("--WARNING--The Item1 element is not displayed"); 
              } finally{ 
              System.out.println("Now Add Item1 to the Cart"); 
              }

它是否可能或者是否会使我的代码复杂化。 我的目标是,如果有一天项目名称发生变化,我只想修改变量而不是通过所有代码并逐个替换。

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

您可以使用方法执行此操作:

public void testElement(string text)
{
    try {
        driver.findElement(By.linkText(text)).isDisplayed();
        System.out.println(text + " element is displayed");
        driver.findElement(By.linkText(text)).click(); 
    } catch(NoSuchElementException e) { 
        System.out.println("--WARNING--The " + text + " element is not displayed"); 
    } finally{ 
        System.out.println("Now Add " + text + " to the Cart"); 
    }
}

testElement("I1");
testElement("I2");