それがあるにもかかわらず - 要素ではないクリッカブル

peetysmith:

あなたが助けることができることを望んで。私は、PythonとSeleniumには比較的新しいです。私は、さまざまなウェブサイト上のニュース検索を自動化する簡単なスクリプトを一緒に引っ張るしようとしています。主な焦点は、サッカーだったと行くと私の場所のカップルから最新のマンチェスター・ユナイテッドのニュースを取得し、私のためにリンクのタイトルとURLのリストを保存します。私は、リンクを介して自分自身を見て、私が確認したかった何かを選択することができます。

独立した新聞(しようとしてhttps://www.independent.co.uk/を)私は、次のアプローチを使用した場合の要素相互作用はないとの問題に対して出ているように見えます。

import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys 
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome('chromedriver')
driver.get('https://www.independent.co.uk')

time.sleep(3)

#accept the cookies/privacy bit
OK = driver.find_element_by_id('qcCmpButtons')
OK.click()

#wait a few seconds, just in case
time.sleep(5)


search_toggle = driver.find_element_by_class_name('icon-search.dropdown-toggle')
search_toggle.click()

これはスローselenium.common.exceptions.ElementNotInteractableExceptionを:メッセージ:要素相互作用ではないエラー

私はまた、XPATHで試してみました

search_toggle = driver.find_element_by_xpath('//*[@id="quick-search-toggle"]')

そして私はまた、IDを試してみました。

私はここで読んでの多くを行なったし、その後もWebDriverWaitとexecute_scriptメソッドを使用してみました:

element = WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.XPATH, '//*[@id="quick-search-toggle"]')))
driver.execute_script("arguments[0].click();", element)

すなわち、適切なクリックが発生しなかった、これがエラーしていないようでしたが、検索ボックスが登場したことがありません。

あなたが与えることができるすべてのヘルプは素晴らしいだろう。おかげで、ピート

frianH:

あなたのロケータは、//*[@id="quick-search-toggle"]2ページにあります、。最初は不可視であり、第二が見えます。デフォルトセレンは最初の要素を参照することにより、あなたは別の独自のロケータを必要とするので、悲しいことに、あなたが意味する要素は、二番目です。これを試して:

search_toggle = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, '//div[@class="row secondary"]//a[@id="quick-search-toggle"]')))
search_toggle.click()

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=24971&siteId=1