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:


据我所知,可能有两种原因:

  • 单击未注册,但可能性很小。您可以查看其他单击方式,如JavascriptExecutor的单击

  • (很可能)在执行单击之后和加载第2页结果之前查询“查找”元素。由于元素在第1页可见,因此它会立即与第1页的元素列表一起退出。实现这一点的理想方法是(使用psuedocode,因为我不熟悉python)

    a。获取当前页码

    b。从当前页面获取所有IP

    c。单击下一步

    d。检查(当前页面+1)页面是否已变为活动页面(将“活动”类添加到数字2)

    e。从当前页面获取所有元素


  • 我是OP,对于遇到类似问题的任何人来说,
    Next
    元素在选择后不再附加到DOM,这导致打印
    元素时出现
    StaleElementReferenceException
    。是否启用()
    或单击时-可以找到详细的解决方案

    如果您刚刚更新了任何错误,请发布-没有任何类型的例外情况,然后该元素不可单击。如果有任何隐藏的搁置,请等待一段时间。或者使用
    driver.execute_script
    Js将为您执行该操作。@PrakashPalnati如果元素不可单击,为什么上面的代码返回“找到并单击下一个按钮”根据您的建议,我测试了元素是否已启用,返回了StaleElementReferenceException-我将转到Prakash Palnati建议的driver.execute_脚本部分