我有一个网页,其中包含更多具有相同类和名称的按钮,单击它们后它们便消失而无所事事。所以我首先尝试了一下,但是没有用:
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')的原因是什么?
答案 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的原因通常与网页本身的局限性有关。