我正在使用Selenium和python抓取页面。数据已分页,表数据如下所示。
<td>
<a href="javascript:__doPostBack('ac$w$PC$PC$grid','Page$2')">2</a>
</td>
现在的挑战是让硒单击此链接并前进到下一页。
有一个SO question正在尝试 解决问题,但不是在python中。
也有很多SO问题试图使用execute_script
来解决,但没有一个问题解决了
具有看似两个参数的javascript函数。
我如何获得硒来单击此链接并进入下一页?任何帮助或指针都将受到高度赞赏。
答案 0 :(得分:1)
这应该有效:
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
[...]
WebDriverWait(driver, 60).until(EC.element_to_be_clickable((By.XPATH,"//td/a[text()='2']")))
driver.find_element_by_xpath("//td/a[text()='2']").click()
答案 1 :(得分:0)
您需要为元素的陈旧性诱导 WebDriverWait ,并可以使用以下解决方案:
WebDriverWait(driver, 10).until(EC.staleness_of(driver.find_element_by_xpath("//td/a[text()='2']")))
driver.find_element_by_xpath("//td/a[text()='2']").click()
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
您将在How do I wait for a JavaScript __doPostBack call through Selenium and WebDriver
中找到相关的讨论