web-dev-qa-db-ja.com

Selenium-Debugging:要素はポイント(X、Y)でクリックできません

私はこれをスクレイプしようとします 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()

しかし、私は同じエラーを受け取りました

40
parik

別の要素がクリックする要素を覆っています。 execute_script()を使用してこれをクリックできます。

element = driver.find_element_by_class_name('pagination-r')
driver.execute_script("arguments[0].click();", element)
77
RemcoW

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
13
Deepak Garud

暗黙の代わりに明示的な待機を使用します。

 new WebDriverWait(TestingSession.Browser.WebDriver, TimeSpan.FromSeconds(10)).Until(ExpectedConditions.ElementExists((By.ClassName("pagination-r'")))); 
2
Rakesh Raut