如何单击带有Enter键的文本的按钮,使用Selenium没有任何id或name属性

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

试图让硒单击网页上的按钮。找不到要单击的元素。

<button type="submit" class="xButton xCTA xSubmit">
  <span>Enter</span>
</button>
javascript selenium xpath css-selectors webdriverwait
3个回答
0
投票
driver.find_element_by_xpath("//button[@class='xButton xCTA xSubmit'].click()
driver.find_element_by_css_selector("button[type='submit']").click()
driver.find_element_by_xpath("//span[contains(text(), 'Enter')]").click()

其中任何一个都可以解决问题。


0
投票

您也可以使用xpath和CSS选择器单击按钮。尝试使用诸如chropath之类的扩展名,您可以检查Absolute xpath(HTML Path),这将更加有用。


0
投票

尽管<button>没有or属性,您仍然可以使用其他属性,例如classinnerText,依此类推

对于文本为Enter的元素上的click(),您需要为element to beableable()引入WebDriverWait,并且可以使用以下Locator Strategies之一:

  • 使用PythonCSS_SELECTOR

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button.xButton.xCTA.xSubmit[type='submit'] > span"))).click()
    
  • 使用JavaXPATH

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//button[@class='xButton xCTA xSubmit']/span[text()='Enter']"))).click();
    
© www.soinside.com 2019 - 2024. All rights reserved.