Python 如何获取此元素并使用selenium单击它?

Python 如何获取此元素并使用selenium单击它?,python,selenium,xpath,css-selectors,webdriverwait,Python,Selenium,Xpath,Css Selectors,Webdriverwait,试图让我的机器人点击提交按钮 <div class="usertext-buttons"> <button type="submit" onclick="" class="save">save</button> <button type="button" onclick="return cancel_usertext(this);" class="cancel" style="display:none">cancel</button>

试图让我的机器人点击提交按钮

<div class="usertext-buttons">
<button type="submit" onclick="" class="save">save</button>
<button type="button" onclick="return cancel_usertext(this);" class="cancel" style="display:none">cancel</button>
<span class="status"></span></div>

拯救
取消
我想用
type=“submit”


driver.find\u element\u by\u xpath
不起作用,因为每个帖子的xpath都不同。我可以在这里拉什么,通常是有效的

尝试使用css选择器:

driver.find_element_by_css_selector('div.usertext-buttons > button[type=submit]').click()

尝试使用css选择器:

driver.find_element_by_css_selector('div.usertext-buttons > button[type=submit]').click()

要单击文本为“保存”的元素,可以使用以下任一选项:

  • 使用
    css\u选择器

    driver.find_element_by_css_selector("button.save[type='submit'][onclick]").click()
    
  • 使用
    xpath

    driver.find_element_by_xpath("//button[@class='save' and text()='save'][@type='submit' and @onclick]").click()
    

理想情况下,要单击元素,您必须使
元素可单击()
,并且您可以使用以下任一定位器策略:

  • 使用
    CSS\u选择器

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button.save[type='submit'][onclick]"))).click()
    
  • 使用
    XPATH

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//button[@class='save' and text()='save'][@type='submit' and @onclick]"))).click()
    
  • 注意:您必须添加以下导入:

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

要单击文本为“保存”的元素,可以使用以下任一选项:

  • 使用
    css\u选择器

    driver.find_element_by_css_selector("button.save[type='submit'][onclick]").click()
    
  • 使用
    xpath

    driver.find_element_by_xpath("//button[@class='save' and text()='save'][@type='submit' and @onclick]").click()
    

理想情况下,要单击元素,您必须使
元素可单击()
,并且您可以使用以下任一定位器策略:

  • 使用
    CSS\u选择器

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button.save[type='submit'][onclick]"))).click()
    
  • 使用
    XPATH

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//button[@class='save' and text()='save'][@type='submit' and @onclick]"))).click()
    
  • 注意:您必须添加以下导入:

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