2016-07-19 38 views
0

C#でドラッグ&ドロップ機能を自動化する必要がありますが、正しい方法が見つかりませんでした。これはファイルアップロードフォームで、ドラッグアンドドロップ操作を自動化する必要があります。C#でSelenium WebDriverを使用してドラッグ&ドロップ機能を自動化[ファイルアップロード]

は、この方法を試し:

public void FileAttachment() { 
    PageObjects.UploadFile.Click(); 
    Driver.Instance.FindElement(By.XPath("//*@id='fileUpload']div")).SendKeys("filepath"); 
    PageObjects.FileUploadSend.Click(); 
} 

はこの岩を通り抜ける私を助けて!

+0

、のように見えます(http://stackoverflow.com/questions/14830719/drag-and-drop -gets-executed-but-not-doing-doing-doing-webdriver) – JeffC

+0

コードはここでは間違っているようです。 'ドラッグアンドドロップ 'よりも'ファイルアップロード 'に向いています。 – Paras

+0

まったく@pArAs!ファイルをローカルパスからドラッグしてターゲット要素にドロップします。それは、同じウェブページのソースとターゲットの両方ではありません! – cashanzlo

答えて

0

HTML5のドラッグアンドドロップを使用していますか?私は同じ問題を抱えていて、さまざまなスレッドからHTML5のドラッグアンドドロップを使用することは、数年前から盗聴されており、修正されていないようです。私はgithubからいくつかの代替方法を見つけましたが、javascriptの実行とC#へのコードの変換だけでなく、コードの変換も必要です。http://elementalselenium.com/tips/39-drag-and-drop

+0

ソースとターゲットが同じWebページにないと考えてファイルをアップロードしようとしていますが、ファイルがローカルドライブからドラッグされてターゲットにドロップされました。 – cashanzlo

+0

その場合は、Seleniumと組み合わせた他のものを使用する必要があります。セレンはブラウザに限ります。ローカルファイルをドラッグし、残りのSeleniumコードを私が知る限り実行するには、AutoItのようなものが必要です。 – Memfisto

+0

まさに!これは私が探していた鍵です!あなたの助けを感謝@ Memfisto! – cashanzlo

2

いくつかの研究が終わった後、

AutoItはSeleniumのような自動化ツールですが、Seleniumとは異なり、Webオートメーションではなくデスクトップオートメーションに使用されます。これは、マウスの動きを自動化&キーストローク、デスクトップウィンドウ、ボタン&フォーム。

それをインストールしてプロジェクトに参照すると、それが起こります!

ので、コードは可能なの重複[ドラッグ&ドロップが実行されますが、その実施し得ていない - webdriverを]

public void FileAttachment() 
{ 
     PageObjects.UploadFile.Click(); 
     Driver.Instance.FindElement(By.XPath("//*@id='fileUpload']div")).Click(); 
     AutoItX3 autoIt = new AutoItX3(); 
     autoIt.WinActive("Open"); //Differs from Browser to Browser 
     autoIt.Send(@"C:Desktop\doccs\trialTest.txt"); 
     autoIt.Send("{ENTER}"); 
     Thread.Sleep(1000); 
     PageObjects.FileUploadSend.Click(); 
} 
関連する問題