次のページを実行するためにセレンを使用する方法を理解しようとしています。ニュースリリースページをクリックしてください。正しいウェブサイトに行き、適切なニュースリリース記事のトピックページを入手するための検索を実行するコードです。このサイトは、検索が実行された後の1ページ目のすべてのニュースリリースを表示するように設定されているため、ページ下部の[その他のニュース結果]ボタンも選択する必要があります。私は問題なしで全面的な1ページのニュースセクションに入ることができます。ここでは、検索とページのクリックを実行する私のコードです。コードの一部が正常に動作しますが、私はそうで2ページに移動し、[次へ]ボタンをクリックし、ページ3とすることができるようにしたいということElementNotVisibleException次ページのボタンのPython/Seleniumエラー
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
browser = webdriver.Chrome()
browser.get('http://www.businesswire.com/portal/site/home/')
search_box_element = browser.find_element_by_id('bw-search-input')
search_box_element.clear()
search_box_element.send_keys('biotechnology')
search_box_element.send_keys(Keys.ENTER)
search_box_element_two = browser.find_element_by_id('more-news-results')
search_box_element_two.click()
。ここで私は仕事だろうと思ったのコードがあるが、それはしません。
next_page_click_element = browser.find_element_by_class_name("bw-paging-next")
next_page_click_element.click()
コードのこの部分は、エラーがスローされます。
selenium.common.exceptions.ElementNotVisibleException: Message:
element not visible
私も
next_page_click_element = browser.find_element_by_xpath('//*[@id="more-news-pagination"]/div/div[1]/div/a')
を使用して試してみました同じエラーメッセージが表示されます。私はまた、next_page_click_elementセクションの直前にこれらのコード行を追加して待機を試みました。
element_present = EC.presence_of_element_located((By.ID, "bw-paging-next"))
WebDriverWait(browser, 10).until(element_present)
これはそれを待つためのプログラムは、このエラーメッセージを返す原因んが:
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
をこの問題を解決する方法上の任意の提案をいただければ幸いです。ここで
'(By.ID、" bw-paging-next ")'を '(By.CLASS_NAME、" bw-paging-next ")に置き換えてください。 – Andersson
こんにちは、ありがとうございます。残念ながらそれは動作しません。 By.IDをBy.CLASS_NAMEに置き換えると、元の要素が表示されないエラーメッセージが返されます。この変更により、待機時間は発生しません。 – user3798654
クリックする前に 'next_page_click_element.location_once_scrolled_into_view'を実行してみてください。 – Andersson