试图让硒单击网页上的按钮。找不到要单击的元素。
<button type="submit" class="xButton xCTA xSubmit">
<span>Enter</span>
</button>
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()
其中任何一个都可以解决问题。
您也可以使用xpath和CSS选择器单击按钮。尝试使用诸如chropath之类的扩展名,您可以检查Absolute xpath(HTML Path),这将更加有用。
尽管<button>
没有or
属性,您仍然可以使用其他属性,例如class
,innerText
,依此类推
对于文本为Enter的元素上的click()
,您需要为element to beableable()引入WebDriverWait,并且可以使用以下Locator Strategies之一:
使用Python和CSS_SELECTOR
:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button.xButton.xCTA.xSubmit[type='submit'] > span"))).click()
使用Java和XPATH
:
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//button[@class='xButton xCTA xSubmit']/span[text()='Enter']"))).click();