Python selenium нажмите на кнопку запуска - PullRequest
0 голосов
/ 23 октября 2019

Как нажать кнопку автоматического запуска теста? Мой код не работает

from selenium import webdriver as wd
driver = wd.Firefox(executable_path='D:\Download\geckodriver\geckodriver')
driver.get('https://www.nperf.com')
import time
time.sleep(10)
driver.find_element_by_link_text("gaugeButton gaugeStartButton").click()

Screenshot of webpage output with button

Ответы [ 2 ]

0 голосов
/ 23 октября 2019

Сначала необходимо переключиться на iframe, в котором находится кнопка запуска теста:

driver.switch_to.frame(driver.find_element_by_id("nPerfSpeedTest"))

Затем вы можете нажать на кнопку:

btn = driver.find_element_by_class_name('gaugeStartButton')
btn.click()
0 голосов
/ 23 октября 2019

button, который вы пытаетесь щелкнуть, находится во внутреннем iframe, поэтому он не виден водителю. Но вы можете переключиться на это iframe. Также вместо time.sleep() вы можете использовать WebDriverWait, поэтому, когда кнопка присутствует и щелкает, она щелкает ее. Попробуйте это:

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

driver = wd.Firefox(executable_path='D:\Download\geckodriver\geckodriver')
driver.get('https://www.nperf.com')

iframe = driver.find_element_by_id("nPerfSpeedTest")
driver.switch_to.frame(iframe)
WebDriverWait(driver, 30).until(EC.element_to_be_clickable((By.CLASS_NAME, "gaugeStartButton")))
driver.find_element_by_class_name('gaugeStartButton').click()
# driver.switch_to.default_content()  # if you need to return to the main content
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...