在硒测试中无法识别点击按钮。

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

我有这个按钮

<button _ngcontent-gyx-c3="" class="btn btn-gradient-primary btn-icon-text p-3 col-12" routerlink="/certificate-request/create" routerlinkactive="active" type="button" tabindex="0"><i _ngcontent-gyx-c3="" class="icon-plus btn-icon-prepend"></i> New request </button>

我怎么能sleect它seinuim测试,我试过这个。

driver.find_element_by_xpath('//button[@class="btn btn-gradient-primary btn-icon-text p-3 col-12"][.="New request"]').click()

但我有以下异常。

no such element: Unable to locate element: {"method": "xpath", "selector":"/button[@class="btn btn-gradient-primary btn-icon-text p-3 col-12"][.="New request"]"}。 (会话信息:无头chrome=72.0.3626.109)

html python-3.x selenium button
1个回答
0
投票

有多种xpath模式可以使用,这是与你的问题中的模式接近的一种。

driver.find_element_by_xpath('//button[@class="btn btn-gradient-primary btn-icon-text p-3 col-12"][text(),"New request"]')

0
投票

所需的元素是一个 角度 元素,所以要点击该元素,使用 你要诱导 WebDriverWait 对于 element_to_be_clickable() 您可以使用以下任何一种方式 定位策略:

  • 使用 CSS_SELECTOR:

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button.btn.btn-gradient-primary.btn-icon-text[routerlink='/certificate-request/create'][routerlinkactive='active']>i.icon-plus.btn-icon-prepend"))).click()
    
  • 使用 XPATH:

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//button[@routerlink='/certificate-request/create' and @routerlinkactive='active']/i[@class='icon-plus btn-icon-prepend']"))).click()
    
  • 说明: : 你必须添加以下导入。

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

-1
投票

你是否可以在你的按钮上加一个ID,然后像这样做?

driver.find_element_by_id(<id_of_button>)

EDIT:

这个怎么样?

driver.find_element_by_xpath('//button[@class="icon-plus btn-icon-prepend"][.="New request"]').click()
© www.soinside.com 2019 - 2024. All rights reserved.