Как нажать / найти кнопку с селеном - PullRequest
0 голосов
/ 19 января 2020

Я пытался нажать кнопку "Continuar >>" , но теперь это просто не работает. Понятия не имею, что я делаю не так. Любая помощь?

driver = webdriver.Firefox()
driver.get('https://gru.inpi.gov.br/pePI/jsp/marcas/Pesquisa_classe_basica.jsp')
driver.find_element_by_xpath("//input[@type ='submit' and @title='Clique aqui para entrar na pesquisa']").click()

Изменить, добавив html элемента

<input type="submit" class="basic" value=" Continuar » " title="Clique aqui para entrar na Pesquisa">

Ответы [ 2 ]

1 голос
/ 19 января 2020

В качестве быстрого решения вы можете скопировать xpath элемента, перейдя в инструменты разработчика, затем щелкнув правой кнопкой мыши на элементе, а затем скопировав> Копировать XPath. Это может сломаться в зависимости от вашей ситуации.

from selenium import webdriver

driver = webdriver.Chrome()
driver.get('https://gru.inpi.gov.br/pePI/jsp/marcas/Pesquisa_classe_basica.jsp')
driver.find_element_by_xpath('//*[@id="principal"]/form/table/tbody/tr[3]/td/input').click()
1 голос
/ 19 января 2020

Чтобы щелкнуть по элементу с текстом Continuar », вам нужно WebDriverWait для element_to_be_clickable(), и вы можете использовать любую из следующих стратегий локатора :

  • Использование CSS_SELECTOR:

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input.basic[value=' Continuar » ']"))).click()
    
  • Использование XPATH:

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@class='basic' and @value=' Continuar » ']"))).click()
    
  • Примечание : Вы должны добавить следующий импорт:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...