我正在使用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");
}
它是否可能或者是否会使我的代码复杂化。 我的目标是,如果有一天项目名称发生变化,我只想修改变量而不是通过所有代码并逐个替换。
感谢您的帮助
答案 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");