1

Chrome 経由でファイルをアップロードすることを含むいくつかのテスト スクリプトを作成しようとしています。Samsung Note 10 デバイスで Chrome を使用して Web アプリケーションをテストするために、Selenium の RemoteWebDriver を使用しています。

ファイル アップロード ボタンをクリックすると、アップロードするファイルの種類を尋ねるファイル アップロード コントロールが表示されます。ただし、これは Web コントロールではないため、RemoteWebDriver を使用して対話することはできません。AppiumDriver の新しいインスタンスを作成しようとしましたが、RemoteWebDriver のインスタンスが既に存在するため、AppiumDriver の新しいインスタンスを作成できません。

とにかく私はこの問題について行くことができますか? RemoteWebDriver を AppiumDriver としてキャストしようとしましたが (動作しないと感じていましたが)、できませんでした。

4

1 に答える 1

0

RemoteWebDriver の代わりに AndroidDriver の初期化でテストを開始できます。

これの理由はその実装です:

AndroidDriver extends AppiumDriver extends DefaultGenericMobileDriver extends RemoteWebDriver

したがって、次のようなものになります。

WebDriver driver = new AndroidDriver(new URL(YOUR_REMOTE_MACHINE_HUB_URL), capabilities);

これで、AppiumDriver メソッドを使用できるようになりました。WebDriver が提供する組み込みの手法を使用してファイルをアップロードできます。
その背後にある主なアイデアは、ファイルへの絶対パスを、通常はモーダル ウィンドウを取得するためにクリックする要素 (要素) に直接送信することです<input type='file' />

WebElement fileInput = driver.findElement(By.xpath("//input[@type='file']"));
fileInput.sendKeys("C:/file_to_upload.jpg");
于 2015-12-29T13:08:42.263 に答える