簡體   English   中英

如果我將提供第一欄的文字,我該如何獲取第二欄的文字

[英]How can i get text of 2nd column if i will provide the text of 1st column

我有一個包含2列的表。 第一列包含金額的類型,即書費,注冊費,第二列包含金額的即500和400。我想獲取第二列的文本(金額),如何通過提供文本來獲取第二列的文本由於動態數據集,僅給出第二列的xpath對我來說不起作用。

數量類型的xpath為:

driver.findElement(By.xpath("//*[@id='charges']/table[2]/tbody/tr[1]/td[1]")).getText();  (text=Book Fee)
driver.findElement(By.xpath("//*[@id='charges']/table[2]/tbody/tr[4]/td[1]")).getText(); (text= Registration fees)

金額的xpath為:

driver.findElement(By.xpath("//*[@id='charges']/table[2]/tbody/tr[1]/td[2]")).getText();  (text= 500.00/=)
driver.findElement(By.xpath("//*[@id='charges']/table[2]/tbody/tr[4]/td[2]")).getText(); (text=1000.00/=)

嘗試以下XPath for Book Fee費用:

//*[@id='charges']/table[2]/tr/td[text()='Book Fee']/../td[2]

嘗試以下XPath for Registration fees費用:

//*[@id='charges']/table[2]/tr/td[text()='Registration fees']/../td[2]

您可以使用String concatanation參數化第一列的值以使其適用於所有人:

//*[@id='charges']/table[2]/tr/td[text()=' " + feeType + "']/../td[2]

這里的feeType ,是您作為參數傳遞給方法的值。

根據您的問題和共享的HTML ,可以通過以下代碼提取文本Book Fee and Registration Fees

String bookFeeText = driver.findElement(By.xpath("//*[@id='charges']/table[2]/tbody/tr[1]/td[1]")).getText();
String registrationFeeText = driver.findElement(By.xpath("//*[@id='charges']/table[2]/tbody/tr[4]/td[1]")).getText();

現在,要檢索下幾列的文本,可以使用從以前的列中提取的文本的幫助,如下所示:

driver.findElement(By.xpath("//*[@id='charges']/table[2]/tbody/tr[1]/td[.='" + bookFeeText + "']//following::td[1]")).getText();
driver.findElement(By.xpath("//*[@id='charges']/table[2]/tbody/tr[4]/td[.='" + registrationFeeText + "']//following::td[1]")).getText();

因此,基本上,無論費用在表中的位置如何,您都希望根據費用類型獲取金額。

List <WebElement> fee_List=driver.findElements(By.xpath("//*[@id='charges']/table[2]/tbody/tr"));
WebElement bookFeeRow=driver.findElement(By.xpath("//td[text()='Book Fee']/.."));
int bookFeeIndex=fee_List.indexOf(bookFeeRow)+1; //'+1' because index starts from 0 and webelement [indices] start from 1
String bookFeeAmount=driver.findElement(By.xpath("//*[@id='charges']/table[2]/tbody/tr["+bookFeeIndex+"]/td[2]")).getText(); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM