Python Selenium - 2 кнопки с одинаковым названием - PullRequest
0 голосов
/ 26 мая 2020

Я пытаюсь нажать кнопку, но не могу это сделать, потому что есть 2 кнопки с одинаковым классом имени, и я не могу нажать нужную кнопку.

    Button 1: 
<button class="dropdown-trigger"> 
   <i class="icon2-arrow-down">
      ::before

    Button 2:
<button class="dropdown-trigger is visible-desktop"> 
   <i class="icon2-arrow-down arrow-icon">
      ::before

Я хочу нажать только на кнопку 1, вы можете мне помочь?

Ответы [ 2 ]

0 голосов
/ 26 мая 2020

Что произойдет, если вы попробуете

driver.find_element_by_css_selector(".dropdown-trigger.visible-desktop").click()

Или вы можете попробовать получить отображаемый элемент из двух найденных ...

buttons = driver.find_elements_by_class_name('dropdown-trigger')
button = next(filter(lambda x: x.is_displayed() == True, buttons))
button.click()
0 голосов
/ 26 мая 2020

Если вы используете Chrome браузер , (я не знаю о других инструментах разработчика браузера, но должно быть что-то подобное ...), легко выбрать уникальный элемент.

  1. Нажмите клавишу «F12», чтобы открыть Chrome инструмент разработчика. (Страница может быть обновлена.)
  2. Щелкните правой кнопкой мыши кнопку, на которой вы хотите сосредоточиться.
  3. Нажмите «Проверить».
  4. В инструменте разработчика в левой части ваш браузер, что-то будет изменено, и в исходном коде HTML должно появиться серое поле. (Если вы наведете на него указатель мыши, кнопка, которую вы проверили, должна быть выделена)
  5. Щелкните правой кнопкой мыши серую линию, затем выберите «Копировать - Селектор копирования». (В своем варианте вы можете скопировать другие функции, чтобы найти этот элемент)
  6. Теперь вы можете использовать скопированный селектор (или любую другую функцию), чтобы найти только один указанный вами элемент.

Если у вас есть вопросы, оставьте, пожалуйста, комментарий к этому сообщению. спасибо!

...