寻找元素中的提交按钮

2024-04-19 13:30:44 发布

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

我试图用python编写一个将在steamgroup中发布的steambot;我对最后一步有问题, 我找不到sumbit按钮

<button type="submit" class="btn_green_white_innerfade btn_medium" id="commentthread_General_34191408_submit">
                                            <span>Post Discussion</span>
                                        </button>

Tags: typebuttongreen按钮classmediumspansubmit
2条回答

要标识文本为讨论后提交按钮,可以使用以下Locator Strategies

  • 使用CSS_SELECTOR

    element = driver.find_element_by_css_selector("button.btn_green_white_innerfade.btn_medium[id^='commentthread_General_'][id$='_submit']>span")
    
  • 使用XPATH

    element = driver.find_element_by_xpath("//button[@class='btn_green_white_innerfade btn_medium' and starts-with(@id, 'commentthread_General_')]/span[text()='Post Discussion']")
    

但是,由于它是一个提交按钮,因此向前移动时,您将在其上调用click(),因此您必须为element_to_be_clickable()导入WebDriverWait,并且您可以使用以下任一解决方案:

  • 使用CSS_SELECTOR

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button.btn_green_white_innerfade.btn_medium[id^='commentthread_General_'][id$='_submit']>span"))).click()
    
  • 使用XPATH

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//button[@class='btn_green_white_innerfade btn_medium' and starts-with(@id, 'commentthread_General_')]/span[text()='Post Discussion']"))).click()
    
  • 注意:必须添加以下导入:

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

这是你的按钮,100%有效。我在当地查过了。你知道吗

driver.find_element(By.XPATH, "//button[@type='submit']")

相关问题 更多 >