我需要连接下面提到的两个Web元素。在这之间,我需要迭代for循环
@FindBy(xpath="//*[@id='undefined/]/div[1]/div[2]/div[2]/svg/g[")
public WebElement test1;
@FindBy(xpath="]/path")
public WebElement test2;
例如-
for (int i=1; i<=10; i++){
//Need code for connect two element like test1 +i + test2.
}
你能帮我吗?
答案 0 :(得分:0)
要合并两个元素的文本,可以执行以下操作-
for (int i=1; i<=10; i++){
System.out.println(test1.getText() +i + test2.getText());
}
编辑- 您实际上是在尝试基于循环创建动态xpath。请注意,您不必为此创建两个WebElement,因为它们并不是真正的WebElement,因为它们的xpath本身并不完整,因此不会与任何元素关联。
现在,无法使用PageFactory来创建类似的动态元素。要开箱即用,请参阅this。否则,您需要使用常规的driver.findElement()
请注意,我是如何使用String
对象而不是WebElement
-
String test1 = "//*[@id='undefined/]/div[1]/div[2]/div[2]/svg/g[";
String test2 = "]/path";
for (int i=1; i<=10; i++){
driver.findElement(By.xpath((test1 + i + test2)))
}
答案 1 :(得分:0)
我认为您想连接两个字符串,然后在运行时生成xpath。这会帮助吗?
String xpath1 "//*[@id='undefined/]/div[1]/div[2]/div[2]/svg/g
for (int i=1; i<=10; i++){
String finalxpath = xpath1+"["+i+"]/path"
}