Нажмите кнопку в Python с Selenium - PullRequest
0 голосов
/ 09 февраля 2020

Кнопка выглядит так в HTML:

<button type="submit" class="btn btn-success"> <strong>Gönder</strong></button>

И я использовал это в python:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

b = webdriver.Firefox()
b.get("####")
url = b.find_element_by_name("link")
url.send_keys("####")
b.find_element_by_xpath("//button[@type='submit']").click()

Есть еще кнопки с type="submit" мне нужно только вызвать 1 указанную c кнопку

Кто-нибудь знает, как я могу нажать на кнопку.

Ответы [ 3 ]

1 голос
/ 09 февраля 2020

Если это возможно, я бы попросил разработчиков включить атрибут ID, чтобы ваш XPath был устойчив к изменениям. В другом случае вы можете найти кнопку по тексту:

b.find_element_by_xpath("//button[text() = 'Gönder']").click()
0 голосов
/ 09 февраля 2020

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

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

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button.btn.btn-success[type='submit']>strong"))).click()
    
  • Использование XPATH:

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//button[@class='btn btn-success']/strong[text()='Gönder']"))).click()
    
  • Примечание : необходимо добавить следующий импорт:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    
0 голосов
/ 09 февраля 2020

Попробуйте click с webdriver wait, чтобы элемент был clickable, чтобы элемент мог получать click.

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

element = WebDriverWait(driver, 40).until(
EC.element_to_be_clickable((By.CSS_SELECTOR, ".btn.btn-success")))
element.click()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...