Аз тествам моята уеб приложение, използвайки селен webdriver, но водачът не може да намери елемента ми, стилът на елемента е настроен да показва: няма видим и аз използвам xpath, за да изтегля този елемент тук е моят xpath
By.XPath(".//*[@id="box"]/table/tbody/tr[3]/td[4]")
Моля, консултирайте се.
Много благодаря
Отговори:
1 за отговор № 1на tbody
изглежда подозрително за мен. Това често се включва имплицитно от някои браузъри. Аз не знам някой, който го използва в HTML.
Следователно можете да опитате XPath без него:
By.XPath ( "// * [@ ID =" кутия "] / маса / TR [3] / TD [4]")
Ако това не ти помогне: Можеш ли да добавиш (Х) HTML фрагмент?
0 за отговор № 2
Премахнете тази водеща точка:
By.XPath("//*[@id="box"]/table/tbody/tr[3]/td[4]")
0 за отговор № 3
Може би, поради причини за отстраняване на грешки (и може би не само за това), трябва да разделите вашия xpath. Например (в псевдо-питън):
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]