【发布时间】:2018-07-14 22:11:08
【问题描述】:
我想点击https://free-proxy-list.net/ 上的Next 按钮。 XPATH 选择器是//*[@id="proxylisttable_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_selector 对于所有选项卡都是相同的,虽然我得到了 next button located and clicked,但两个选项卡的 IP 输出是相同的(即似乎从未单击过 Next 按钮)。 另外,没有抛出异常。
因此,我的方法肯定存在根本性的问题。
如何使用 python/selenium 在 phantomJS 中正确点击可见和启用的按钮?
为了您的理解,这里是我所指的页面部分的html:
【问题讨论】:
-
如果您遇到任何错误,请发布
-
刚刚更新 - 没有抛出任何异常
-
那么该元素不可点击。如果有任何隐藏的中途停留,请等待一段时间。或者使用
driver.execute_scriptJs 会为你做的。 -
@PrakashPalnati 如果元素不可点击,为什么上面的代码返回“找到并点击了下一个按钮”
标签: python selenium web-scraping phantomjs screen-scraping