[英]How can I call a javascript function in a website with selenium
所以这是网站中的一个元素
<span class="log-out-ico" ng-click="logout()">/
假设我不想单击它,而只想从 selenium 运行“logout()”脚本,这有可能吗? 如果有怎么办?!
这是我尝试过的
IJavaScriptExecutor js = (IJavaScriptExecutor)driver;
js.ExecuteScript("logout()");
但我得到这个错误:
javascript error: logout is not defined
例如页面:
<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<body ng-app="myApp">
<div ng-controller="myCtrl">
<p>Click the button to run a function:</p>
<button ng-click="myFunc()">OK</button>
<p>The button has been clicked {{count}} times.</p>
</div>
<script>
a=function(){
console.log("hiii")
}
angular.module('myApp', [])
.controller('myCtrl', ['$scope', function($scope) {
$scope.count = 0;
$scope.myFunc = function() {
$scope.count++;
};
}]);
</script>
</body>
</html>
您可以看到 muFunc 不在脚本块内,而是在 Angular controller 内。 你不能直接调用它。
但是 function 'a' 是正常的 javascript function 所以你直接调用它。
调用 a 并打开浏览器控制台,您可以看到打印了“hiiii”
有一些方法可以将 angular function 暴露在 angular 模块之外
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.