如何使用Selenium和Python单击yahoo页面上的“邮件”按钮

2024-06-30 05:17:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我为这些按钮获得了一个按钮变量:

GoMailsBTN = browser.find_element_by_class_name("D(ib) Fz(14px) Fw(b) Lh(24px) Pstart(38px)")
GoMailsBTN.click()

而且,如果你愿意的话,也没有任何身份证可以让你自己去查看! 这是弹出的错误 selenium.common.exceptions.InvalidSelectorException:消息:无效选择器:指定的选择器无效或非法 有人知道这是为什么吗

按钮的快照:

html


Tags: namebrowserby选择器elementfind按钮class
2条回答

类名是动态的,可以更改,在这种情况下,可以使用xpath:

browser.find_element_by_xpath("//li//a[contains(@href ,'mail') and not(@id)]")

所需的元素是启用了JavaScript的元素,因此要单击该元素,必须为element_to_be_clickable()诱导WebDriverWait,并且可以使用以下任一Locator Strategies

  • 使用CSS_SELECTOR

    driver.get('https://in.yahoo.com/?p=us')
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "a#header-mail-button span"))).click()
    
  • 使用XPATH

    driver.get('https://in.yahoo.com/?p=us')
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//a[@id='header-mail-button']//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
    
  • 浏览器快照:

yahoomail

相关问题 更多 >