2017-06-20 54 views
0

正如你在下面看到的,我得到列表中的所有行。然後,當遍歷行列表時,我從每行中抽出Web元素。但是,當我拉出Web元素時,我不斷收到列表中的第一個Web元素。元素列表在我嵌套findelement後繼續使用第一個元素

System.out.println(row.getText()); //Prints correct values 
System.out.println(actualFirstName.getText() + " " + actualLastName.getText()); //Prints incorrect values 

代碼:

​​

任何幫助將不勝感激。

+1

不是真的su重新嘗試在這裏做什麼。你說迭代總是給你列表中的第一個元素,但是你說你的打印語句給你提供正確的行被引用的信息。此外,您在findElement方法中使用的值「firstNameLocator」和「lastNameLocator」是什麼。它們似乎是來自類的靜態值,不會作爲參數傳遞給方法。它們從不改變方法,所以actualFirstname和actualLastName永遠不會改變。 – digidude

+1

看看你的'firstNameLocator'和'lastNameLocator'。他們可能每次都會引用第一行的元素。 – Jason

+1

你能告訴我們一個HTML樣本和兩個定位器是什麼嗎? – Jason

回答

0

審查我通過定位器進一步後,我意識到,我的XPath有它引用的第一個元素

private By brokerFirstNameLocator = By.xpath("//div[contains(@id,'first-name')]"); 
private By brokerLastNameLocator = By.xpath("//div[contains(@id,'last-name')]"); 

在哪裏我應該有

private By firstNameLocator = By.xpath("./div[contains(@id,'first-name')]"); 
private By lastNameLocator = By.xpath("./div[contains(@id,'last-name')]"); 

TBH我很驚訝這是我的初始方式沒有奏效,但它是一個相對與絕對路徑問題

相關問題