2

Visual Studio 2010用にc#Webドライバーを構成しました。Iframeの[インストール]ボタンをクリックしたいと思います。このIFrameから[インストール]ボタンをクリックするc#コードを書いています。

これがHTMLコードです...

<html>
<head></head>
<body>
<"pt1:pt2:mvtiframe" class="gradbg af_inlineFrame p_AFFlow" frameborder="0"   onload="AdfDhtmlInlineFramePeer.__iframeLoadHandler(event)" src="some url" style="width:700px; height:360px" _adfloaded="1">
<html>
<tr>
<td style="text-align: left; height: 35px" colspan="3">
<table cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr>
<td>
<p>
<a class="imageButton" onclick="OnNextButtonClick()" target="_blank" href="http://google.com/abc.asp">
<span>Install</span>
</a>
</p>
</td>
</tr>
</html>
</iframe>
</body>
</html>

以下のコードで「インストール」ボタンをクリックしようとしています。しかし、動作しません。要素を見つけることができなかったと表示されます。

FirefoxDriver driver = new FirefoxDriver();
driver.SwitchTo().Frame(0);
driver.FindElement(By.Name("Install")).Click();

Xpathを試してみましたが、IFrameの一部である[インストール用のXpath]ボタンが表示されません。

4

1 に答える 1

1

ここでの問題は、要素の「名前」が「インストール」ではないことです インストールはボタンのテキストです。

次のようなXpathを試してみます:"//a[@class='imageButton']"

driver.FindElement(By.Xpath("//a[@class='imageButton']")).Click();

それがページ ソースの場合、そのクラスを使用して要素を見つけることができるはずです。これはすべて、期待どおりに機能していることを前提としていますSwitchTo().Frame

また、可能であれば、インデックスを使用する代わりに、その iFrame に名前または ID を配置することを強くお勧めします。ページが変更された場合、長期的にはより信頼性が高くなります。

于 2013-01-10T18:22:33.030 に答える