【问题标题】:Get CSS_SELECTOR or XPATH of a Button Selenium Python获取按钮 Selenium Python 的 CSS_SELECTOR 或 XPATH
【发布时间】:2021-11-23 07:07:06
【问题描述】:

您好,我正在尝试单击一个按钮,但它对我不起作用到目前为止我所尝试的如下:

driver.find_elements_by_id("id__1115").click()
driver.find_elements_by_css_selector('.ms-Button.ms-Button--default.manageOwnersButtonStyle-1007').click()
driver.find_elements_by_xpath("/html[1]/body[1]/div[5]/div[1]/div[1]/div[1]/div[1]/div[3]/div[2]/div[3]/div[2]/div[1]/div[1]/div[1]/div[3]/button[1]/span[1]/span[1]/span[1]").click()
driver.find_elements_by_xpath("/html[1]/body[1]/div[5]/div[1]/div[1]/div[1]/div[1]/div[3]/div[2]/div[3]/div[2]/div[1]/div[1]/div[1]/div[3]/button[1]").click()

【问题讨论】:

    标签: python-3.x selenium xpath css-selectors element


    【解决方案1】:

    如果Add owners 文本不会改变,那么

    你可以使用下面的xpath

    //span[text()='Add owners']/ancestor::button
    

    点赞

    代码试用 1:

    time.sleep(5)
    driver.find_element_by_xpath("//span[text()='Add owners']/ancestor::button").click()
    

    代码试用 2:

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//span[text()='Add owners']/ancestor::button"))).click()
    

    进口:

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

    PS:如果我们在HTML DOM 中有唯一条目,请检查dev tools(谷歌浏览器)。

    检查步骤:

    Press F12 in Chrome -> 转到element 部分 -> 做一个CTRL + F -> 然后粘贴xpath 看看,如果你想要的element 用@ 得到突出显示 987654333@匹配节点。

    【讨论】:

      【解决方案2】:

      elements and click throwing error instead element and click 因为元素会产生列表,而列表在 selenium 中是不可点击的。

      我将代码更改为:

      driver.find_element_
      

      只有这个 xpath 有效:

      driver.find_element_by_xpath("/html[1]/body[1]/div[5]/div[1]/div[1]/div[1]/div[1]/div[3]/div[2]/div[3]/div[2]/div[1]/div[1]/div[1]/div[3]/button[1]/span[1]/span[1]/span[1]").click()
      

      谢谢

      我不知道有多少元素。例如:(使用xpath更好)

      el = driver.find_elements_by_id("id__1115")
      el[2].click()
      

      【讨论】:

      • 如果其他选择产生多个,那么您可以迭代或切片然后单击
      猜你喜欢
      • 1970-01-01
      • 2021-09-24
      • 1970-01-01
      • 2016-04-29
      • 1970-01-01
      • 1970-01-01
      • 2022-01-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多