0

スクリプト:

IWebDriver ie = new InternetExplorerDriver();
IWebDriver ff = new FirefoxDriver();
string baseURL = "http://xxxxxxxxxxxx";
ISelenium iesele = new WebDriverBackedSelenium(ie, baseURL);
ISelenium ffsele = new WebDriverBackedSelenium(ff, baseURL);

baseURLのページは2枠あり、上の枠は警告ページで、「同意する」を選択したいので「OK」をクリックして閉じます。IEのスクリプトが動かず、チェックボックスやボタンのオブジェクトは発見できるが、「選択」や「クリック」は動かない。しかし、Firefox では動作し、上部フレームは正常に閉じられました。スクリプト: IE

iesele.Start();
iesele.Open(baseURL);
iesele.SelectFrame("UpperFrame");
iesele.FindElement(By.Name("agree")).Click();
iesele.FindElement(By.CssSelector("ok")).Click();

ファイアフォックス

ffsele.Start();
ffsele.Open(baseURL);
ffsele.SelectFrame("UpperFrame");
ffsele.FindElement(By.Name("agree")).Click();
ffsele.FindElement(By.CssSelector("ok")).Click();

IE がこのスクリプトを正しく実行できない理由を知っている人はいますか? IE8 の何かを設定する必要がありますか?

ありがとう

4

3 に答える 3

0

うーん、私はあなたの問題を探し回った。このスタックオーバーフローの質問と同じ問題があるかもしれません:

Selenium 2.0b3 IE WebDriver、クリックしない

ここでは、実際の click() が要素に登録される前に、特定のフレームに (click() を介して) フォーカスを設定する必要があるようです。

于 2012-04-18T07:30:36.450 に答える
0

Firefox は要素を見つけて操作するのに、IE はさまざまな場所で失敗することが何度かありました。ほとんどの場合、「要素の待機」をスローすると、IE の問題は解決されます。IE は要素の作成が少し遅い場合があると思います (または、別の順序で処理しますか?)。そのため、クリックしようとしても要素が存在しない場合があります。これはあなたの問題ではないかもしれませんが、私にはかなり頻繁に起こるようです!

編集: 私も Chrome を使用しており、IE が失敗したときに FF と Chrome が機能することがよくあります。

于 2012-04-19T02:31:14.617 に答える
0

各ブラウザーがページをレンダリングする方法には違いがあり、Selenium ドライバーにも違いがあります (そのため、ブラウザーごとにまったく同じスクリプトを使用できない場合があります)。

同様の質問に対するこの回答が役立つ場合があります。<div>特に、要素自体ではなく、ターゲット要素の親 ( など) を選択してクリックしてみてください。また、の代わりにMouseDown()followed byを使用してみてください。MouseUp()Click()

于 2012-04-18T09:20:09.120 に答える