1
有Silenium服務器,NUnit,WebDriver。ExecuteScript不執行HTML中描述的func,並在頁面加載後運行
我有C#DLL與下面的代碼:
private IWebDriver driver;
// ...
driver = new InternetExplorerDriver();
// ...
[Test]
public void test()
{
string testURL = "file:/C:/Tests/test.html";
driver.Navigate().GoToUrl(testURL);
IJavaScriptExecutor js = driver as IJavaScriptExecutor;
object resFunc = js.ExecuteScript("open_form");
object res = js.ExecuteAsyncScript("alert('hello')");
}
文件test.html
樣子:
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script type="text/javascript" src="./test.js"></script>
</head>
<body unselectable="on">
</body>
</html>
而且test.js
function open_form() {
document.body.style.backgroundColor = "green";
}
我運行控制檯NUnit的,當測試「你好「出現,背景顏色不變。 如何運行html內的函數以及哪些正在執行的操作?
非常感謝!這有助於運行腳本!但它仍然是要解決與爭論的問題。 所以當我將參數傳遞給函數並輸出警報時,參數傳遞爲undefined int dec = 10; string value =(string)js.ExecuteScript(「return open_form()」,new object [] {dec}); function open_form(val){ \t alert(val); \t return val; } – Alexey 2013-03-14 09:52:30