1

完全にレンダリングされた JavaScript アプリケーションを Google スパイダーと JavaScript が無効になっているユーザーに提供するために、C# 用の Selenium を使用しています。ASP.NET MVC を使用して、コントローラーからページを提供しています。コンテンツが発信者に提供される前に、動的なメタ タグを生成できる必要があります。たとえば、次の擬似コード:

var pageSource = driver.PageSource; // This is where i get my page content         

var meta = driver.findElement(By.tagname("meta.description")).getAttribute("content");
meta.content = "My New Meta Tag Value Here";

return driver.PageSource; // return the page source with edited meta tags to the client

ページソースを呼び出し元に取得する方法は知っていますが、すでにこれを行っていますが、コンテンツを要求元にプッシュする前に、メタタグを編集するための適切なセレクターが見つからないようです。どうすればこれを達成できますか?

4

1 に答える 1

3

Selenium には、これに特化した機能はありません。しかし、技術的には JavaScript でメタタグを変更できるのでIJavaScriptExecutor、C# で Selenium を使用できます。

ページが jQuery を使用している場合は、次の方法があります。

// new content to swap in
String newContent = "My New Meta Tag Value Here";

// jQuery function to do the swapping
String changeMetasScript = "$('meta[name=author]').attr('content', arguments[0]);"

// execute with JavaScript Executer
IJavaScriptExecutor js = driver as IJavaScriptExecutor;
js.ExecuteScript(changeMetasScript, newContent);
于 2013-09-04T06:06:45.323 に答える