Как найти строку и щелкнуть элемент таблицы через таблицу с селеном? - PullRequest
0 голосов
/ 06 февраля 2019

Я хочу щелкнуть ссылку, привязанную к ярлыку для этого тд.

Я могу использовать onclick, чтобы найти ссылку на один элемент, но имя меняется с HemoGlobin A1C, на HGB A1c и т. Д. И onclickне имеет уникального идентификатора для поиска каждый раз.

используя его сейчас:

WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//td[contains(@onclick, '%s' )]" % testname))).click()

testname = 'A1c'

UI

HTML

Ответы [ 2 ]

0 голосов
/ 06 февраля 2019

Пожалуйста, попробуйте это:

testname= "a1c"
try:
    elem = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, '//td[contains(translate(text(), "AC", "ac"), {})]/following-sibling::td[3]//td'.format(testname))))
except TimeoutException:
    print("Element not found")
else:
    elem.click()

Объяснение:

  • //td[contains(translate(text(), "AC", "ac"), testname)]: Сначала найдите элемент td, который содержит text 'A1C 'или' A1c '(или' a1C 'или' a1c ').Здесь transalte() - это функция xpath, которая заменит все 'A' & 'C' на 'a' & 'c'.
  • /following-sibling::td[3]//td Затем мы должны перейти к брату этого tdэлемент, который в вашем случае является третьим родным братом того же типа, и затем мы находим дочерний элемент td в нем.
0 голосов
/ 06 февраля 2019

Пожалуйста, попробуйте это, чтобы проверить, работает ли.

testname = "A1c"
element = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//td[text()[contains(.,'" + testname + "')]]")))
element.click
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...