2017-11-12 12 views
4

何らかの理由で、ページの入力要素に「3」という文字を書くことができません。Chromeウェブドライブの送信キーが「3」を送信しない

このコード:ログイン入力に書かれている "1245" で

chrome_options = Options() 
    chrome_options.add_argument('--dns-prefetch-disable') 
    chrome_options.add_argument('--no-proxy-server') 
    chromeDriverPath = self.getChromeDriverPath() 
    os.environ["webdriver.chrome.driver"] = chromeDriverPath 
    self.driver = webdriver.Chrome(chromeDriverPath, chrome_options=chrome_options) 

    self.driver.get(self.loginUrl) 
    login = self.driver.find_element_by_id('login_credit') 
    login.send_keys("12345") 

結果... 誰かが助けてくださいことはできますか? は、私は、Python 2.7、最新のChromeと最新chromedriverを使用

EDIT:

login.send_keys("3") 

login.send_keys("\3") 

はどちらか動作しません。

login.send_keys("[email protected]#$%^&*()") 

- 唯一の "3" が働いていた何

はアンダーソンとして

login.send_keys(Keys.NUMPAD3) 

は、以下の提案だった...文字列に欠けていたが、これは解決策ではありません。

Google検索ボックスで試したところ、同じ動作が発生しました。

+0

'login.send_keys(" 1 "、" 2 "、" 3 "、" 4 "、" 5 ")' – Andersson

+0

いいえ、私は完全に単独でも '3'は印刷されません – Charlestone

+1

about 'selenium.webdriver.common.keysからのインポートキー' 'login.send_keys(Keys.NUMPAD3)'? – Andersson

答えて

3

更新最新のchrome driverが解決しますこの問題。

+1

これは質問に対する答えを提供しない。十分な[評判](https://stackoverflow.com/help/whats-reputation)があれば、[投稿にコメントする]ことができます(https://stackoverflow.com/help/privileges/comment)。代わりに、[質問者からの明確化を必要としない回答を提供する](https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-c​​an- i-do-代わりに)。 - (/レビュー/低品質・ポスト/ 18106907) – loki

+3

[レビューより]これは、以前のバージョンのソフトウェアのバグです。ソフトウェアの最新バージョンに更新する必要があると言うのは、まったく合理的な答えです。 – titusfortner

0

奇妙な問題、send_keysに文字列変数を渡すために試してみて、それはあなた

my_str = "12345" 
login = self.driver.find_element_by_id('login_credit') 
login.send_keys(my_str) 
+0

あなたは確かに 'ログインを意味します。send_keys私はここに変数を使用もちろん(my_strに):)、 "12345"、それは 'のdocument.getElementById( 'login_credit')である必要があり、単に例 – Charlestone

1

ための代わりに使用すると、下記の選択肢のいずれかを使用することができますsend_keys("12345")を使用しての作品かもしれ試してみてください。

  1. 使用Keys.NUMPAD3

    login.send_keys(Keys.NUMPAD3) 
    
  2. 使用JavascriptExecutorgetElementById

    self.driver.execute_script("document.getElementById('login_credit').value='12345'") 
    
  3. getElementsByIdで使用JavascriptExecutor

    self.driver.execute_script("document.getElementsById('login_credit')[0].value='12345'") 
    
+1

た。値= '12345''や' document.getElementsById(' login_credit」 )[0] .value = '12345''とはい、これも機能します、ありがとう! :ちょっと醜い解決策だが – Charlestone

関連する問題