hewh

JavaScript和Selenium JavaScriptExecutor

 

 

什么是JavaScript?

JavaScript是浏览器中与HTML dom交互的首选语言。这意味着浏览器中包含JavaScript实现并理解JavaScript命令。您可以使用浏览器中的浏览器选项将其禁用。

JavaScript也是早期Selenium版本使用的语言,Selenium webdriver仍然使用它来执行某些操作。例如,Selenium已经在JavaScript中为IE实现了Xpath,以克服IE中缺少Xpath引擎。理解JavaScript很有趣,它可以让你做很多很酷的事情,否则你可能会觉得很棘手。让我们了解如何

WebDriver为您提供了一个名为Driver.executeScript的方法,该方法在加载的浏览器页面的上下文中执行JavaScript。

 

JavaScript和Selenium JavaScriptExecutor可以为我们做些什么?

首先要知道JavaScriptExecutor 是单独出现的,并且也属于WebDriver,但两者都做同样的事情。在WebDriver中,它被命名为ExecuteScript您将在下面找到两者的示例。你可以使用任何一个。

几乎任何你想在浏览器中做的事情。让我们看看如何,我们尝试使用JavaScript并行selenium命令。

 

评估Xpath

您可以使用javascripts通过Xpath查找元素。这是跳过内部Xpath引擎的绝佳方式。这是你要做的

注意命令document.evaluate()。这是javascript中的Xpath评估程序。功能的签名是

  • xpathExpression:  包含要计算的XPath表达式的字符串。
  • contextNode:   文档中应评估xpathExpression的节点,包括其所有子节点。文档节点是最常用的。
  • NamespaceResolver:  将传递xpathExpression中包含的任何名称空间前缀的函数,该函数返回表示与该前缀关联的名称空间URI的字符串。
  • resultType:一个常量,指定作为评估结果返回的所需结果类型。最常传递的常量是XPathResult.ANY_TYPE,它将返回XPath表达式的结果作为最自然的类型。
  • 结果:   如果指定了现有的XPathResult对象,则将重用该对象以返回结果。指定null将创建一个新的XPathResult对象

 

 

寻找元素

使用selenium,我们可以使用类似的东西找到页面上的任何元素

我们可以像这样使用JavaScript做同样的事情

searchbox = (WebElement) ff.executeScript(“return document.getElementById(‘gsc-i-id1’);”, searchbox);

1
2
3
WebElement searchbox = null ;
 
searchbox = ( WebElement ) ff . executeScript ( “return document.getElementById(‘gsc-i-id1’);” , searchbox ) ;

你将获得searchbox变量中的元素。

查找元素 Selenium命令

使用JavaScript

 

更改元素样式属性

您可以更改元素的样式属性以更改元素的渲染视图。例如,这就是你可以在toolsQa主页上围绕about me元素创建边框的方法。在创建边框之前和之后,请参见下面相同元素的图像

beforeafterbeforeafter

这是代码。

着色元素还可以帮助我们使用可视标记截取屏幕截图,以识别有问题的元素。

 

获取元素属性

您可以获取元素的有效属性的任何值。例如

此代码将获取具有id = gsc-i-id1的元素的class属性的值。

在Javascript中可以使用相同的东西执行

 

浏览器中的总帧数

假设您想知道网页内的总帧数,包括Iframe。你不能直接使用selenium,你可能需要创建自己的逻辑来解析和查找帧。但是在JavaScript中很简单,就像这样。

是这个的商品。它只适用于IE,无法让它为Mozilla工作。

 

在DOM中添加元素

只是为了好玩,如果你想在DOM中添加一个元素。让我们添加一个按钮html对象

Driver.executeScript(“return window.innerWidth;”)

1
2
3
Driver . executeScript ( “return window.innerHeight;” )
 
Driver . executeScript ( “return window.innerWidth;” )

 

导航到不同的页面

 

 

什么是JavaScriptExecutor?

JavaScriptExecutor是一个接口,它提供了通过selenium驱动程序执行Javascript的机制。它提供“ executioncript ”和“ executeAsyncScript ”方法,以在当前选定的框架或窗口的上下文中运行JavaScript。

 

生成警报弹出窗口

 

单击操作

 

刷新浏览器

 

获取网页的InnerText

 

获取WebPage的标题

 

 滚动页面

 

 

同样,您可以使用Selenium执行几乎任何JavaScript命令。我希望这篇博客能让您了解可以做些什么,并且可以通过使用不同的JavaScripts来推动它。

 

 

猜你喜欢

转载自blog.csdn.net/kuangjuelian229/article/details/88622247
0条评论
添加一条新回复