Selenium 2 では、このWebDriver
オブジェクトは、getPageSource()
CSS、JS、画像などを一切使用せずに未加工の HTML ページを保存するメソッドのみを提供します。
参照されているすべてのリソースを HTML ページにも保存する方法はありますか (HtmlUnit と同様HtmlPage.save()
)。
セレンの相互作用を使用して処理できます。
using OpenQA.Selenium.Interactions;
それを行う方法もいくつかあります。私がこのようなことを処理する方法の 1 つは、ページの中心にあるアイテム、または保存したい領域を見つけて、アクション ビルダーを実行することです。
var htmlElement = driver.FindElement(By.XPath("//your path"));
Actions action = new Actions(driver);
try
{
action.MoveToElement(htmlElement).ContextClick(htmlElement).SendKeys("p").Build().Perform();
}
catch(WebDriverException){}
これは単に領域を右クリックし、右クリック時に Firefox の「ページを名前を付けて保存」ホットキーであるキー「p」を送信します。もう 1 つの方法は、ビルダーにキーを送信させることです。
var htmlElement = driver.FindElement(By.Xpath("//your path"));
action.MoveToElement(htmlElement);
try
{
action.KeyDown(Keys.Control).SendKeys("S").KeyUp(Keys.Control).Build().Perform();
}
catch(WebDriverException){}
どちらの場合も、Windows フォームなどのドライバーのスコープを離れる場合は、ポップアップ時に Windows フォームを処理するようにケース/コードを切り替える必要があることに注意してください。Selenium には、キーが送信された後に何も返されないという問題もあるため、Try Catches はそのためにあります。誰かがそれを回避する方法を持っているなら、それは素晴らしいことです。
いいえ。可能であればHtmlUnit
、この特定のタスクを選択してください。
あなたができる最善のことは、私が思うにRobot
. Ctrl+Sを同時に押し、 で確定しEnterます。それは盲目で、不完全ですが、あなたのニーズに最も近いものです。