0
我正在Python中使用Selenium構建自動化框架,我試圖通過點擊「Next」按鈕來循環HubSpot.com上的着陸頁。點擊與Python中的Selenium分頁
下一個按鈕,根據Chrome檢查位於以下HTML:
<a class="next" data-reactid=".0.1.0.0.2.1.0.0.1.0.$next.0">
<span data-reactid=".0.1.0.0.2.1.0.0.1.0.$next.0.1">Next</span>
<span class="right" data-reactid=".0.1.0.0.2.1.0.0.1.0.$next.0.2"></span>
</a>
而且我使用下面的Python代碼點擊按鈕:
time.sleep(3)
wait(self.driver, """//a[@class="next" and not(@disabled)]""")
nextButton = self.driver.find_element(By.XPATH, """//a[@class="next" and not(@disabled)]""")
hov = ActionChains(self.driver).move_to_element(nextButton)
hov.click().perform()
在我的等待( )功能定義爲:
def wait(dr, x):
element = WebDriverWait(dr, 5).until(
EC.presence_of_element_located((By.XPATH, x))
)
return element
這在第一頁上工作得很好。但由於某些原因,當我到達第二頁時,無法點擊按鈕。沒有錯誤,它只是開始做它應該在第三頁 - 但在第二頁。另外,如果我在第二頁上的Next按鈕之前停止腳本,我可以看到該按鈕在Chromedriver中突出顯示。
下一個按鈕,根據Chrome檢查::
<a class="next" data-reactid=".0.1.0.0.2.1.0.0.1.0.$next.0">
<span data-reactid=".0.1.0.0.2.1.0.0.1.0.$next.0.1">Next</span>
<span class="right" data-reactid=".0.1.0.0.2.1.0.0.1.0.$next.0.2"></span>
</a>
任何建議位於以下HTML第2頁?我沒有想法。
如果您在第一次和第二次點擊之間添加睡眠,突然開始工作嗎? –
我想你使用這段代碼兩次(每頁一次),對吧?:)爲什麼你使用'ActionChains'而不是簡單的'click()'? – Andersson
@LeviNoecker:我已經有點擊之間的睡眠。不幸的是這並沒有改變任何東西 – mfvas