2017-12-10 12 views
0

python selenium webdriver(Chrome)を使用してボタンをクリックしようとしています。 は、ボタンのHTML:Pythonセレニウム - ボタンをクリックできません(onClick = openWIndow)

(私はstackoverflowのがGoogleのURL shoortnersを許可しないよう、 "LINK_HERE" を削除する必要がありました) は今、私はnoobのではないです、私はあなたがクリックする方法を知っていますボタンの上に。問題は、.click()が表示されてもボタンが反応しないということです。 onClickフィールドがこの問題の根本にあるようです。ここではそれらの2である、私は別のソリューションの多くを試してみました

は、:

css_selector = 'div.container > div > button' 
# Attempt 1 
browser.find_element_by_css_selector(css_selector) 
# Attempt 2 
js_script = ''.join(["var elem = document.querySelector('", 
        css_selector, 
        "');", 
        "if(document.createEvent) {", 
        "var evObj = document.createEvent('MouseEvents');", 
        "evObj.initEvent('mouseover', true, false);", 
        "elem.dispatchEvent(evObj);", 
        "} else if(document.createEventObject) {", 
        "elem.fireEvent('onmouseover');", 
        "}"]) 

browser.execute_script(js_script) 

ボタンが応答しなかったことに注意してください、エラーが試みのいずれかで上昇しませんでした。ここで

は私が達成しようとしているものを、説明するための画像です: enter image description here

は、あなたが私のアカウントにログインするのは自由です、自分自身でそれを試してみてください、私はすでに、スクリプトにユーザー名とパスワードを書かれています。しかし、あなたはwebdriverへのパスを変更する必要があります。 コード - >https://pastebin.com/fkYZxywf

答えて

0

あなたのケースの要素のリストを使用し、特定の要素をリストのインデックスで取得する必要があります。

list_of_like_buttons = ui.WebDriverWait(self.driver, timeout).until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR,".button.blue"))) 

# Click on the second "Like"-button. 
list_of_like_buttons[1].click() 

希望します。

+0

私は言葉がありません。私は非常に多くの異なるアトラクションを試しましたが、2つのアプローチ^^を例として見てください。なぜ彼らは働かないが、あなたの仕事は何か?彼らはまったく同じ要素を見つけることに成功しましたか? – Bjango

+0

@Bjango、私の答えが役に立ったら - 私の答えの近くにチェックを入れてください。 –

+0

@Bjango、 "Like"ボタンをクリックする前に待つ必要があります。 –

関連する問題