Я пытаюсь щелкнуть последнюю строку таблицы, используя python и селен. Я выделил то, что я пытаюсь щелкнуть в изображении HTML-кода.
lastRow = driver.find_element(By.CSS_SELECTOR("td.phone-leftinline yui-dt6-col-Type yui-dt-col-Type yui-dt-first:last-of-type"))
lastRow.click()
Эти коды продолжают выдавать ошибку:
Traceback (most recent call last):
File "/Users/daniel/Python/main.py", line 42, in <module>
lastRow = driver.find_element(By.CSS_SELECTOR("td.phone-leftinline yui-dt6-col-Type yui-dt-col-Type yui-dt-first:last-of-type"))
TypeError: 'str' object is not callable
Я также пробовал это без везения:
lastRow = driver.find_element(By.XPATH("(//table[1]/tbody/tr)[last()]"));






У вас есть синтаксические ошибки в обоих выражениях, которые вы пытаетесь использовать.
Я не могу проверить это, поскольку вы не предоставили ссылку на страницу, над которой работаете, но попробуйте следующее (исправленный синтаксис ваших испытаний):
driver.find_element(By.CSS_SELECTOR, "td.phone-leftinline.yui-dt6-col-Type.yui-dt-col-Type.yui-dt-first:last-of-type").click()
или
driver.find_element(By.XPATH, "(//table[1]/tbody/tr)[last()]").click()
Кроме того, вам может потребоваться дождаться кликабельности элемента. WebDriverWaitexpected_conditions для этого обычно используется явное ожидание element_to_be_clickable.
UPD
В дополнение к last() XPath поддерживает индексирование элементов, так что вы можете выбрать первый, второй, n-й элемент, как показано ниже:
Это выберет первый элемент
driver.find_element(By.XPATH, "(//table[1]/tbody/tr)[1]").click()
Это выберет второй
driver.find_element(By.XPATH, "(//table[1]/tbody/tr)[2]").click()
и т.д.
Обратите внимание: в XPath индексация начинается с 1, а не с 0, как в большинстве других мест.
Ваш код сработал. Как мне выбрать первую строку с помощью XPATH?
Ну, это новый вопрос, но я добавил ответ здесь.
А как же
lastRow = driver.find_element(By.XPATH("(//table[1]//tr)[last()]"));. А если подождать пару секунд перед взаимодействием с элементом? Возможно, он не загрузился, когда вы пытаетесь с ним взаимодействовать.