如何获得此元素并用硒单击它?

问题描述 投票:0回答:2

[试图使我的机器人点击提交按钮。

<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_element_by_xpath不起作用,因为每个帖子的xpath都不相同。我能在这里找到通常可行的方法吗?

python selenium xpath css-selectors webdriverwait
2个回答
0
投票

尝试使用CSS选择器:

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

0
投票

要单击文本为保存的元素,可以使用以下Locator Strategies之一:

  • 使用css_selector

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

理想情况下,单击元素必须将WebDriverWait推导为element_to_be_clickable(),并且您可以使用以下任一[

  • 使用CSS_SELECTOR

    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
  • © www.soinside.com 2019 - 2024. All rights reserved.