Web元素可见并已启用,但在使用phantomJS的python selenium中.click()失败
我想点击Web元素可见并已启用,但在使用phantomJS的python selenium中.click()失败,python,selenium,web-scraping,phantomjs,screen-scraping,Python,Selenium,Web Scraping,Phantomjs,Screen Scraping,我想点击https://free-proxy-list.net/。XPATH选择器是/*[@id=“proxylisttable\u next”]/a 我使用以下代码执行此操作: element = WebDriverWait(driver, 2, poll_frequency = 0.1).until (EC.visibility_of_element_located((By.XPATH, '//*[@id="proxylisttable_next"]/a'))) if (elemen
https://free-proxy-list.net/
。XPATH选择器是/*[@id=“proxylisttable\u next”]/a
我使用以下代码执行此操作:
element = WebDriverWait(driver, 2, poll_frequency = 0.1).until
(EC.visibility_of_element_located((By.XPATH, '//*[@id="proxylisttable_next"]/a')))
if (element.is_enabled() == True) and (element.is_displayed() == True):
element.click()
print "next button located and clicked" # printed in case of success
随后,我从表中获取所有IP,如下所示:
IPs = WebDriverWait(driver, 2, poll_frequency = 0.1).until
(EC.presence_of_all_elements_located((By.CSS_SELECTOR, ':nth-child(n) > td:nth-child(1)')))
尽管CSS_选择器对于所有选项卡都是相同的,尽管我找到并单击了一个下一步按钮
,但两个选项卡的IPs输出是相同的(即,似乎从未单击过下一步
-按钮)此外,不会引发异常。
因此,我的方法肯定有根本性的问题。
如何使用python/selenium在phantomJS中正确单击可见和启用的按钮?
为了便于您理解,以下是我所指的页面部分的html:
据我所知,可能有两种原因:
我是OP,对于遇到类似问题的任何人来说,
Next
元素在选择后不再附加到DOM,这导致打印元素时出现StaleElementReferenceException
。是否启用()
或单击时-可以找到详细的解决方案如果您刚刚更新了任何错误,请发布-没有任何类型的例外情况,然后该元素不可单击。如果有任何隐藏的搁置,请等待一段时间。或者使用driver.execute_script
Js将为您执行该操作。@PrakashPalnati如果元素不可单击,为什么上面的代码返回“找到并单击下一个按钮”根据您的建议,我测试了元素是否已启用,返回了StaleElementReferenceException-我将转到Prakash Palnati建议的driver.execute_脚本部分