2

私はSeleniumとCapybaraを利用したテストスイートを維持しています。Seleniumにホームドメイン外のページにアクセスするように説得することはできますが、CapybaraはブラウザのアドレスバーでURLを追跡できないようです。この欠陥を、RubyのSelenium2へのバインドであるSelenium::WebDriverの動作まで追跡しました。

グーグルで見てみると、Seleniumには、クロスドメイン操作を可能にする設定可能なモードのように見えます。しかし、私は特定のものへの言及を見つけません。

StackOverflowの一部の人々は、「昇格された特権」でChromeまたはFirefoxを使用することについて話しますが、繰り返しになりますが、そのような機能の使用に関する情報が見つかりません。必然的に、これらの質問は答えられないことになります。

さらに他の人気のあるSOの提案では、「open」コマンドを使用してブラウザーを新しいサイトに明示的に移動することについて説明しています。原則としてユーザーがドメイン名を入力しないという明らかな理由から、これは受け入れられません。たとえば、たとえばyoutube.comにアクセスして、説明の下にTwitterアイコンが付いた気に入った動画を見つけた場合、そのTwitterボタンをクリックすると、適切なtwitter.comアドレスに移動します。ユーザーはTwitterアドレスを手動で入力する必要はありません。セレンのopenコマンドを使用すると、テストが中断されます。これは、テストがユーザーの動作を反映しなくなったため(バーに実際にアドレスを入力した人をエミュレートするため)、Twitterボタンかどうかを確認するというテストの意図が破られたためです。実際には意図したとおりに機能します。

私は、真の自動化されたクロスドメイン操作は単純に不可能であると信じ始めています。

したがって、基本的に、2つの質問があります。

(1)たとえば、「www.example.com」でSeleniumを開くテストスクリプトがあり、ブラウザを別の場所に誘導するリンクをクリックするようにSeleniumに依頼した場合、ブラウザのアドレスのURLを何らかの方法でキャプチャすることは=可能=です。クリックが成功した後にバーが読み取られますか?そして(2)それが可能であることを知って、=どのように=私はそれをしますか?私はこれに関する情報を単に見つけていません。@ session.driver.browser.current_urlを読んだ場合でも、ブラウザの現在のURLではなく、example.comのURLが報告されます。

問題を無関係な詳細と混同しないように、私が欲しいものを説明するのに役立つサンプルソースコードを提供する方法がよくわかりませんが、サンプルソースコードが必要な場合はお知らせください。試してみます何かをかき立てる。

ご協力ありがとうございました。

4

1 に答える 1

1

使用する

selenium.click("some redirect link");
selenium.waitforpagetoload("30000"); //page load time
string url=selenium.getlocation(); //storing the url in a string.

これが役に立たない場合は、サンプルコードまたはこのテストを行っているWebページへのリンクを投稿してください。

Rubyでそれを行う方法がわかりません。ただし、このテストのHTMLコードを投稿します。したがって、このコードをSelenium IDEに貼り付けて、 Rubyまたは任意の言語としてエクスポートします。

HTMLコード

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://selenium-ide.openqa.org/profiles/test-case">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="selenium.base" href="http://www.google.co.in/" />
<title>New Test</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">New Test</td></tr>
</thead><tbody>
<tr>
<td>open</td>
<td>youtube</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=redirect_link</td>
<td></td>
</tr>
<tr>
<td>verifyLocation</td>
<td>resultant_page_URL</td>
<td></td>
</tr>
</tbody></table>
</body>
</html>
于 2012-06-20T11:20:06.640 に答える