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