Testuję moją webappę przy pomocy selionowego webdrivera, ale sterownik nie może znaleźć mojego elementu, styl elementu jest ustawiony do wyświetlania: none visible, i używam xpath do pobrania tego elementu tutaj jest mój xpath
By.XPath(".//*[@id="box"]/table/tbody/tr[3]/td[4]")
Proszę doradź.
Wielkie dzięki
Odpowiedzi:
1 dla odpowiedzi № 1temu tbody
wygląda mi się podejrzane. Jest to często niejawnie dodaje przez niektóre przeglądarki.Don "t wie każdy, kto używa go w formacie html.
W związku z tym można spróbować XPath bez niego:
By.XPath("//*[@id="box"]/table/tr[3]/td[4]")
Jeśli ten nie robi "t pomoc: można dodać (X) HTML fragment?
0 dla odpowiedzi nr 2
Usunięcia tej kropki wiodącej:
By.XPath("//*[@id="box"]/table/tbody/tr[3]/td[4]")
0 dla odpowiedzi № 3
Może dla debugowania powodów (i może nie tylko za to) należy podzielić się swoim xpath.Na przykład (w pseudo-python):
tables = driver.findElementsByXPath("//*[@id="box"]/table")
if len(tables) == 0:
break
trs = tables[0].findElementsByXPath("/tr")
if len(trs) == 0:
break
tds = trs[3].findElementsByXPath("/td") # or maybe trs[2]
if len(tds) == 0:
break
td = tds[4] # or maybe tds[3]