Jak uzyskać dokładną liczbę wierszy w webtableza pomocą xpath w webdriver za pomocą Java. Korzystając z poniższej ścieżki, jestem w stanie policzyć również nagłówek. Nie chcę, aby liczba zawierała wiersz nagłówka i pobierała liczbę tabeli internetowej.
//table[@id="ctl00_MasterPlaceHolder_GrdHistory"]/tbody/tr
Kod HTML:
<table id="ctl00_MasterPlaceHolder_GrdHistory" cellspacing="2" cellpadding="0" border="0" style="color:#333333;width:100%;">
<tbody>
<tr style="color:Black;background-color:#DFC065;font-weight:bold;">
<tr style="background-color: rgb(251, 247, 234); text-decoration: none;" onclick="javascript:__doPostBack("ctl00$MasterPlaceHolder$GrdHistory","Select$0")" onmouseout="javascript:setMouseOutColor(this);" onmouseover="javascript:setMouseOverColor(this);">
<tr style="background-color: rgb(251, 247, 234); text-decoration: none;" onclick="javascript:__doPostBack("ctl00$MasterPlaceHolder$GrdHistory","Select$1")" onmouseout="javascript:setMouseOutColor(this);" onmouseover="javascript:setMouseOverColor(this);">
<tr style="background-color: rgb(251, 247, 234); text-decoration: none;" onclick="javascript:__doPostBack("ctl00$MasterPlaceHolder$GrdHistory","Select$2")" onmouseout="javascript:setMouseOutColor(this);" onmouseover="javascript:setMouseOverColor(this);">
<tr style="background-color: rgb(251, 247, 234); text-decoration: none;" onclick="javascript:__doPostBack("ctl00$MasterPlaceHolder$GrdHistory","Select$3")" onmouseout="javascript:setMouseOutColor(this);" onmouseover="javascript:setMouseOverColor(this);">
<tr style="background-color: rgb(251, 247, 234); text-decoration: none;" onclick="javascript:__doPostBack("ctl00$MasterPlaceHolder$GrdHistory","Select$4")" onmouseout="javascript:setMouseOutColor(this);" onmouseover="javascript:setMouseOverColor(this);">
<tr style="background-color: rgb(251, 247, 234); text-decoration: none;" onclick="javascript:__doPostBack("ctl00$MasterPlaceHolder$GrdHistory","Select$5")" onmouseout="javascript:setMouseOutColor(this);" onmouseover="javascript:setMouseOverColor(this);">
<tr style="background-color: rgb(251, 247, 234); text-decoration: none;" onclick="javascript:__doPostBack("ctl00$MasterPlaceHolder$GrdHistory","Select$6")" onmouseout="javascript:setMouseOutColor(this);" onmouseover="javascript:setMouseOverColor(this);">
<tr style="background-color: rgb(251, 247, 234); text-decoration: none;" onclick="javascript:__doPostBack("ctl00$MasterPlaceHolder$GrdHistory","Select$7")" onmouseout="javascript:setMouseOutColor(this);" onmouseover="javascript:setMouseOverColor(this);">
<tr style="background-color: rgb(251, 247, 234); text-decoration: none;" onclick="javascript:__doPostBack("ctl00$MasterPlaceHolder$GrdHistory","Select$8")" onmouseout="javascript:setMouseOutColor(this);" onmouseover="javascript:setMouseOverColor(this);">
<tr style="background-color: rgb(251, 247, 234); text-decoration: none;" onclick="javascript:__doPostBack("ctl00$MasterPlaceHolder$GrdHistory","Select$9")" onmouseout="javascript:setMouseOutColor(this);" onmouseover="javascript:setMouseOverColor(this);">
<tr style="background-color: rgb(251, 247, 234); text-decoration: none;" onclick="javascript:__doPostBack("ctl00$MasterPlaceHolder$GrdHistory","Select$10")" onmouseout="javascript:setMouseOutColor(this);" onmouseover="javascript:setMouseOverColor(this);">
<tr style="background-color: rgb(251, 247, 234); text-decoration: none;" onclick="javascript:__doPostBack("ctl00$MasterPlaceHolder$GrdHistory","Select$11")" onmouseout="javascript:setMouseOutColor(this);" onmouseover="javascript:setMouseOverColor(this);">
<tr style="background-color: rgb(251, 247, 234); text-decoration: none;" onclick="javascript:__doPostBack("ctl00$MasterPlaceHolder$GrdHistory","Select$12")" onmouseout="javascript:setMouseOutColor(this);" onmouseover="javascript:setMouseOverColor(this);">
<tr style="background-color: rgb(251, 247, 234); text-decoration: none;" onclick="javascript:__doPostBack("ctl00$MasterPlaceHolder$GrdHistory","Select$13")" onmouseout="javascript:setMouseOutColor(this);" onmouseover="javascript:setMouseOverColor(this);">
<tr style="background-color:#FBF7EA;" onclick="javascript:__doPostBack("ctl00$MasterPlaceHolder$GrdHistory","Select$14")" onmouseout="javascript:setMouseOutColor(this);" onmouseover="javascript:setMouseOverColor(this);">
<tr style="background-color:#FBF7EA;" onclick="javascript:__doPostBack("ctl00$MasterPlaceHolder$GrdHistory","Select$15")" onmouseout="javascript:setMouseOutColor(this);" onmouseover="javascript:setMouseOverColor(this);">
Czy to możliwe, jeśli tak, to w jaki sposób mogę uzyskać liczbę bez uwzględnienia wiersza nagłówka w liczbie. Proszę, pomóż mi z tym. Pomoc będzie mile widziana.
Odpowiedzi:
5 dla odpowiedzi № 1Użyj poniżej xpath, aby wykluczyć pierwszy wiersz (nagłówki)
//table[@id="ctl00_MasterPlaceHolder_GrdHistory"]/tbody/tr[position()>1]
0 dla odpowiedzi nr 2
Sugeruję :
count(table[@id="ctl00_MasterPlaceHolder_GrdHistory"]/tbody/tr) - 1
0 dla odpowiedzi № 3
Wypróbuj ten kod:
int count = (driver.findElements(By.xpath("//table[@id="ctl00_MasterPlaceHolder_GrdHistory"]/tbody/tr")).size()) - 1;