2017-06-08 9 views
3

の「クリック」、私はエラーを取得しています:セレンwebdriverを:要素がクリックできない&プロパティを読み取ることができません。このコマンドを実行するときにヌル

driver.find_element_by_link_text("Confirm").click() 

selenium.common.exceptions.WebDriverException: Message: unknown error: Element <a href="javascript:void(0);" class="c-button u-fontSize13 c-button--blue transparent-button js-connect-button js-request-connection" data-href="https://angel.co/user_graph_requests" data-invited-id="5911955">...</a> is not clickable at point (67, 581). Other element would receive the click: `<div class="mfp-container mfp-ajax-holder mfp-s-loading">...</div>` 

この問題に答えを検索した後、私はしました最初の場合

element = driver.find_element_by_link_text("Confirm").click() 
driver.execute_script("arguments[0].click();", element) 

それが働いていたし、このエラーを印刷クリック:に上記のコードを変更し

selenium.common.exceptions.WebDriverException: Message: unknown error: Cannot read property 'click' of null 

HTMLコードは次のとおりです。

<a href="javascript:void(0);" class="c-button js-close s-vgLeft0_5 c-button--blue" data-modal="true" data-url="https://angel.co/user_graph_requests/102006082/verify">Confirm</a> 
+0

をクリックすることを計画しているオブジェクトを指すべきです

ここで: 'driver.find_element_by_link_text("確認 ")。あなたのリンクが他の要素の背後にある()'をクリックします。つまり、何らかの理由で要素をフロントエンドに持ってきたことを意味します。これは、ページが完全に読み込まれていないなど多くのことを意味する可能性があります。それについての他の情報がなくても、何が起きているのかを正確に言うことは難しいです。 – Edwin

+0

クリックする前に待つようにしてください。 –

答えて

0

クラスを検索してみてください:
driver.find_element_by_class("c-button js-close s-vgLeft0_5 c-button--blue").click()

+0

彼女はクリックを見つけました。他の要素は、他の要素によってマスクされているためクリックを受け取ります。 – Edwin

1

だから、これは私の仕事:みんなに

driver.find_element_by_link_text("Confirm").send_keys('\n') 

感謝を:)

0

場合エラーメッセージを見ると、別の要素がクリックを傍受していることがわかります。私はページを見ることなく確かに分かっていませんが、一般的にローダー画面、ポップアップなど一時的に現れて消えるようなものです。また、インターセプトするDIVクラスのヒントの1つ、mfp-s-loadingもあります。それはさらに、ポップアップを読み込んでいると思います。ここでの問題は、スクリプトが進行し、ポップアップのロードとアンロードよりも速くリンクをクリックしようとすることです。このような状況で私が通常行うことは、ポップアップが見えなくなるのを待ってからリンクをクリックすることです。

ポップアップのHTMLは、あなたはそれが見えないと、あなたのクリックをしようとするのを待つために、div.mfp-s-loading、などのCSSセレクタを使用して要素を見つけることができ、エラーメッセージ、

<div class="mfp-container mfp-ajax-holder mfp-s-loading">...</div> 

です。

0

時々、XPathを使用すると、簡単に てみてくださいです: driver.find_element_by_xpath(Xpathの).click()XPathは、あなたがそれをクリックしようとすると、明らかに

関連する問題