1

我将 Selenium 用于 C#,以便为谷歌蜘蛛和禁用 javascript 的用户提供完全呈现的 javascript 应用程序。我正在使用 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 回答