公開Webサイトのdiv内からデータを取得しようとしています。 Selenium WebDriverは要素を見つけることはできません。 XPathでもIDとクラスの要素を見つけようとしましたが、まだ何も見つかりませんでした。 PageSourceを見るとhtmlページコードが表示されます。これは、ドライバの動作を確認します。私はここで間違って何をしていますか?セレンV2.53.1 // IEDriverServerのWin32 v2.53.1WebdriverはIDまたはクラスで要素を見つけられません。NoSuchElementException
マイコード:
IWebDriver driver = new InternetExplorerDriver("C:\\Program Files\\SeleniumWebPagetester");
driver.Navigate().GoToUrl("D:\\test.html");
await Task.Delay(30000);
var src = driver.PageSource; //shows the html page -> works
var ds = driver.FindElement(By.XPath("//html//body")); //NoSuchElementException
var test = driver.FindElement(By.Id("aspnetForm")); //An unhandled exception of type 'OpenQA.Selenium.NoSuchElementException' occurred in WebDriver.dll
var testy = driver.FindElement(By.Id("aspnetForm"), 30); //'OpenQA.Selenium.NoSuchElementException'
var tst = driver.FindElement(By.XPath("//*[@id=\"lx-home\"]"), 30); //'OpenQA.Selenium.NoSuchElementException'
driver.Quit();
シンプルなHTMLページ:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
</head>
<body>
<form action="#" id="aspnetForm" onsubmit="return false;">
<section id="lx-home" style="margin-bottom:50px;">
<div class="bigbanner">
<div class="splash mc">
<div class="bighead crb">LEAD DELIVERY MADE EASY</div>
</div>
</div>
</section>
</form>
</body>
</html>
サイドノートで、私のXPathはHtmlWebで完璧に動作します:
string Url = "D:\\test.html";
HtmlWeb web = new HtmlWeb();
HtmlDocument doc = web.Load(Url);
var element = doc.DocumentNode.SelectNodes("//*[@id=\"lx-home\"]"); //WORKS
コードにOKが見えますここにあなたのオプションがあります。私。あなたは "GoToUrl"ステップの後に明示的な待機を試みることができますし、div要素を読むこともできますか? webdriverがフォーム自体またはすべての要素に問題があるかどうかを確認したい – Sid
さらに、IEとドライバのバージョンについても言及してください。 – Sid
@Sidコードを更新し、待ち時間とxpathを本文に追加しました。そして、私はhtmlページのnoページからも削除しました。 – Freddy