2014-01-14 18 views
14

マイのjavascriptライン:要素jquery.showとWebDriverException後:不明なエラー:焦点を合わせることができない要素

$('#name').show(); 

マイwebdriverをコード行:

wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("name"))).sendKeys("Some Name"); 

私は、テストを実行すると、次の例外がスローされます。

WebDriverException: unknown error: cannot focus element 

私は解決策を探していました。クロムgoogleのコードサイトで報告されているいくつかの問題があります。 JavaScriptExecutorの使用に関する多くの提案があります。しかし、それはブラウザ依存のコードを作ることができるので、私にとってより良い解決策には見えません。

答えて

26

いくつかの時間後、私は最終的にJavascriptExecuterなしでアクションを使用して、解決策を見つけた:

Actions actions = new Actions(driver); 
actions.moveToElement(website); 
actions.click(); 
actions.sendKeys("Some Name"); 
actions.build().perform(); 

まあ、それは私のために働きました。しかし、この方法はより良い解決策ですか?同様の行に

+0

これは私にとっても同様の問題を抱えていました。 –

7

あなたはこのよう `

actions = protractor.getInstance().actions(); 
actions.mouseMove(element); 
actions.click(); 
actions.sendKeys("Some text"); 
actions.perform();` 
11
少し遅れて相手に

が、この問題への解決策をお探しの方は、下のセレンを使用しながら、それを使用することができます分度器(angularjs)を使用している場合

my_divは、おそらくこのようなコードで、以前に選択した要素である

actions = webdriver.ActionChains(driver) 
actions.move_to_element(my_div) 
actions.click() 
actions.send_keys("Some name") # Replace with whichever keys you want. 
actions.perform() 

:Pythonは、次のコードを使用することができます

+1

明確にするために、この答えはPython 3.5で私のために働いた、私は受け入れられた解決策はJava –

関連する問題