私はこれをスクレイプしようとします site by Selenium。
「次のページ」ボタンをクリックします。これを行うには:
driver.find_element_by_class_name('pagination-r').click()
多くのページで機能しますが、すべてではありません。このエラーが発生しました
WebDriverException: Message: Element is not clickable at point (918, 13). Other element would receive the click: <div class="linkAuchan"></div>
常に このページ
この質問 を読みました
そして、私はこれを試しました
driver.implicitly_wait(10)
el = driver.find_element_by_class_name('pagination-r')
action = webdriver.common.action_chains.ActionChains(driver)
action.move_to_element_with_offset(el, 918, 13)
action.click()
action.perform()
しかし、私は同じエラーを受け取りました
別の要素がクリックする要素を覆っています。 execute_script()
を使用してこれをクリックできます。
element = driver.find_element_by_class_name('pagination-r')
driver.execute_script("arguments[0].click();", element)
ActionChainsを使用してもエラーが解決されないという同様の問題がありました:WebDriverException:Message:unknown error:Element is clickable at point(5 74、892)
Execute_scriptを使用したくない場合は、素敵なソリューションを見つけました。
from Selenium.webdriver.common.keys import Keys #need to send keystrokes
inputElement = self.driver.find_element_by_name('checkout')
inputElement.send_keys("\n") #send enter for links, buttons
または
inputElement.send_keys(Keys.SPACE) #for checkbox etc
暗黙の代わりに明示的な待機を使用します。
new WebDriverWait(TestingSession.Browser.WebDriver, TimeSpan.FromSeconds(10)).Until(ExpectedConditions.ElementExists((By.ClassName("pagination-r'"))));