0
次のコードを使用して特定のテキストが表示されるまでスクロールしようとしていますが、次のコードでドライバが終了するとすぐにページに移動します。PythonのセレンでJSスクリプトをスクロールダウン
def scroll_wait():
wait = WebDriverWait(driver, 10)
find_elem = None
scroll_from = 0
scroll_limit = 3000
while not find_elem:
sleep(2)
driver.execute_script("window.scrollTo(%d, %d);" % (scroll_from, scroll_from + scroll_limit))
scroll_from += scroll_limit
try:
find_elem = wait.until(EC.presence_of_element_located((By.XPATH, "//h3[@class='uiHeaderTitle']")))
except TimeoutException:
pass
driver.close()
私も次
XPATH
にしようとしているが、それだけでも、テキストの後にスクロールし続け
、
(By.XPATH, "//*[contains(text(), 'More About You')]")
そして、これは私がにスクロールしようとしているテキストのHTMLコードです。セレンについては
<h3 class="uiHeaderTitle">More About You</h3>
Seleniumの場合、テストする良い方法の1つは、必要なものだけを含むプレーンなHTMLページ(たとえばh3)を作成し、シナリオを模倣することです。私はあなたの問題を本当に知っていませんが、 'presence_of_element_located'がDOMにあればtrueを返します。つまり、それが必要ではないことを意味します。これがすぐに終了する理由かもしれません。 'visibility_of_element_located' – AngYC
@AngYCに変更してみてください。本当にうまく動作します。回答を投稿して受け入れることもできます。 –