尝试在元素中查找提交按钮

时间:2019-12-11 21:51:38

标签: python selenium xpath css-selectors webdriverwait

im试图用python编写一个将在steamgroup中发布的Steambot;我对最后一步有疑问, 我找不到求和按钮

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

2 个答案:

答案 0 :(得分:2)

要将带有文字的 submit 按钮标识为讨论后,您可以使用以下任一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']")
    

但是,由于它是一个 submit 按钮,因此继续前进,您将在其上调用click(),因此您必须为{{1}诱导 WebDriverWait }},您可以使用以下任一解决方案:

  • 使用element_to_be_clickable()

    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()
    

答案 1 :(得分:1)

这是您的按钮,效果100%。我在本地检查过。

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