为什么在Python Selenium中,click()不起作用,但send_keys('\ n')起作用?

时间:2019-10-20 18:22:07

标签: python selenium click selenium-chromedriver sendkeys

我有一个网页,其中包含更多具有相同类和名称的按钮,单击它们后它们便消失而无所事事。所以我首先尝试了一下,但是没有用:

buttons = driver.find_elements_by_xpath('//*[@class="btn"]')
buttons[1].click()
buttons = driver.find_elements_by_xpath('//*[@class="btn"]')
buttons[2].click()
buttons = driver.find_elements_by_xpath('//*[@class="btn"]')
buttons[3].click()

然后找到解决方案:

buttons = driver.find_elements_by_xpath('//*[@class="btn"]')
buttons[1].send_keys('\n')

我是Python的新手,所以谁能向我解释为什么不使用click而是使用send_keys('\ n')的原因是什么?

1 个答案:

答案 0 :(得分:0)

根据WebElement的类型,即使网站打算让您单击某些元素,某些元素也不接受点击-您可以尝试使用Javascript click()函数来查看是否有效,而不是发送键。它比发送密钥更一致,因为您仍在执行点击操作:

buttons = driver.find_elements_by_xpath('//*[@class="btn"]')

# click button using javascript
driver.execute_script("arguments[0].click();", buttons[1])

我们需要使用Javascript的原因通常与网页本身的局限性有关。