2011-01-12 6 views
3

私は、セレン2ベータを使用しています。私はファイル添付ダイアログを開くボタンをクリックしようとしています。しかし、それをクリックすると何も起こりません。ボタンをクリックするとファイル添付ダイアログが開きます

<input class="zf" name="Passport" id="PassportUpload" type="file" onclick="return { oRequired : {} }" maxlength="524288"> 


driver.findElement(By.name("Passport")).click(); 

セレンを使用しないセレン2を使用すると簡単にクリックできます。

答えて

1

IEとFFがファイル入力を少し異なるので、Internet Explorerを使用している場合にのみ問題が発生すると思われます。FFでは、ボタンまたはフィールドをクリックして開くダイアログを呼び出すことができます。ボタンまたはフィールドにをダブルクリックします。

WebDriverはネイティブイベントを使用しているため、ネイティブマウスクリックをファイル入力コントロールに送信します。これは入力フィールドのクリックに変換されます。

イベントを起動するためにJavaScriptを使用しているため、Selenium 1で動作していました。それはwebdriverをして​​動作させるためには、JavaScriptを起動する必要があります:コードabouveは、あなたのようなものを使用することができますないFirefoxで、のでしかし

WebElement upload = driver.findElement(By.name("Passport")); 
((JavascriptExecutor)driver).executeScript("arguments[0].click();", upload); 

WebElement upload = driver.findElement(By.name("Passport")); 
if (driver instanceof InternetExplorerDriver) { 
    ((JavascriptExecutor)driver).executeScript("arguments[0].click();", upload); 
} else { 
    upload.click(); 
} 
0

を多分コード以下試してください。

WebElement upload = driver.findElement(By.name("Passport")); 
if (driver instanceof InternetExplorerDriver) { 
    ((JavascriptExecutor)driver).executeScript("arguments[0].click();", upload); 
} else if (driver instanceof FirefoxDriver) { 
((JavascriptExecutor)driver).executeScript("arguments[0].click;", upload); 
}else { 
    upload.click(); 
} 
関連する問題