gpt4 book ai didi

python - 如何使用 Selenium 和 Python 根据 html 单击按钮

转载 作者:行者123 更新时间:2023-12-01 09:03:53 24 4
gpt4 key购买 nike

我正在学习 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) 吗?

最佳答案

根据网站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

关于python - 如何使用 Selenium 和 Python 根据 html 单击按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52233552/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com