Как нажать на кнопку в соответствии с HTML, используя Selenium и Python - PullRequest
0 голосов
/ 08 сентября 2018

Я изучаю Selenium и пытаюсь нажать кнопку GO: https://speedtest.telstra.com/

<button class="button background-primary-hover text-primary" aria-label="start your speedtest">
<span style="font-size: unset; overflow-wrap: unset;">GO</span></button>

Каковы все возможные методы Selenium для нажатия этой кнопки, elem = driver.find_element_by_ .... ???

Я также хотел бы посмотреть, что я нашел, так что тогда стоит использовать print(elem.text)?

Ответы [ 3 ]

0 голосов
/ 08 сентября 2018

Попробуйте это:

browser.find_element_by_class_name("button background-primary-hover text-primary").click()

Так как он выберет элемент и щелкнет по нему.

0 голосов
/ 08 сентября 2018

Согласно веб-сайту https://speedtest.telstra.com/ желаемый элемент находится в пределах <iframe>, поэтому вам нужно заставить WebDriverWait перейти на <iframe>, а затем искать элемент, и вы можете использовать следующее решение:

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

    WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH,"//iframe[@class='speed-test' and @src='//telstra-nbn.speedtestcustom.com']")))
    WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//button[@class='button background-primary-hover text-primary']/span[contains(.,'GO')]"))).click()
    
  • Использование CSS_SELECTOR:

    WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.CSS_SELECTOR,"//iframe.speed-test[src*='speedtestcustom']")))
    WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button.button.background-primary-hover.text-primary[aria-label='start your speedtest']>span"))).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 голосов
/ 08 сентября 2018

Вы должны использовать xpath, есть xpath вспомогательный инструмент для Chrome. Вы можете установить его.

button = driver.find_element_by_xpath("your xpath")

button.click()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...