繁体   English   中英

如何使用 selenium 在网站中调用 javascript function

[英]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 模块之外

Angular2 - 如何从应用程序外部调用组件 function

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM