Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Selenium WebDriver';s isDisplayed()方法工作_Selenium_Webdriver_Selenium Webdriver - Fatal编程技术网

Selenium WebDriver';s isDisplayed()方法工作

Selenium WebDriver';s isDisplayed()方法工作,selenium,webdriver,selenium-webdriver,Selenium,Webdriver,Selenium Webdriver,我目前有很多情况需要验证页面(及其所有元素)是否正确显示。WebElement的isDisplayed()方法似乎是实现这一点的逻辑方法,但是我想确切地了解该方法在确定元素是否“显示”时所做的工作。该方法并没有揭示该方法的内部工作原理,web上的其他信息充其量也显得稀疏 如果有人能详细介绍这种方法的工作原理,我将不胜感激。WebDriver有自己的方法 这一部分是关于你所追求的 我要警告说,“展示”是一个非常宽泛的术语,因此有很多场景。因此,可能存在WebDriver无法解释的情况 因此,重要的

我目前有很多情况需要验证页面(及其所有元素)是否正确显示。WebElement的
isDisplayed()
方法似乎是实现这一点的逻辑方法,但是我想确切地了解该方法在确定元素是否“显示”时所做的工作。该方法并没有揭示该方法的内部工作原理,web上的其他信息充其量也显得稀疏

如果有人能详细介绍这种方法的工作原理,我将不胜感激。

WebDriver有自己的方法

这一部分是关于你所追求的

我要警告说,“展示”是一个非常宽泛的术语,因此有很多场景。因此,可能存在WebDriver无法解释的情况

因此,重要的是,事实上,记住“显示”或“可见”的东西有很多含义。(正如完全加载页面一样,它也有许多含义。)


还请记住,Selenium是没有任何东西可以阻止您重新签出存储库并在本地检查它。

我相信Selenium可以确定是否显示元素。如果它不起作用,您可以提出一个bug和/或修复您看到的任何问题,并提供一个补丁

这就是该方法的作用(取自当前值):

/**
*确定某个元素是否为用户所称的“已显示”。这意味着
*元素显示在浏览器的视口中,并且只有
*高度和宽度大于0px,且其可见性未“隐藏”
*并且其显示属性不是“无”。
*选项和Optgroup元素被视为特例:它们是
*如果它们有一个封闭的select元素,则视为已显示。
*
*@ PARAM{{元素} EELM要考虑的元素。
*@param{boolean=}opt_ignoreOpacity是否忽略元素的不透明度
*确定是否显示时;默认为false。
*@return{boolean}元素是否可见。
*/
bot.dom.isShown=函数(elem,opt_ignoreOpacity){
if(!bot.dom.isElement(elem)){
抛出新错误('isShown的参数必须是Element类型');
}
//当显示封闭选择时,将显示选项或optgroup(忽略
//选择不透明度)。
if(bot.dom.isElement(elem,goog.dom.TagName.OPTION)||
bot.dom.isElement(elem,goog.dom.TagName.OPTGROUP)){
var select=/**@type{Element}*/(goog.dom.get祖先(elem,函数(e)){
返回bot.dom.isElement(例如,goog.dom.TagName.SELECT);
}));
return!!select&&bot.dom.isShown(select,/*ignoreOpacity=*/true);
}
//如果显示使用图像映射元素的图像,则会显示图像映射元素,并且
//元素的面积为正。
var imageMap=bot.dom.maybeFindImageMap(elem);
如果(图像映射){
return!!imageMap.image&&
imageMap.rect.width>0&&imageMap.rect.height>0&&
bot.dom.isShown(imageMap.image,opt_ignoreOpacity);
}
//不显示任何隐藏的输入。
if(bot.dom.isElement(elem,goog.dom.TagName.INPUT)&&
elem.type.toLowerCase()=“隐藏”){
返回false;
}
//没有显示任何NOSCRIPT元素。
if(bot.dom.isElement(elem,goog.dom.TagName.NOSCRIPT)){
返回false;
}
//不显示任何具有隐藏可见性的图元。
if(bot.dom.getEffectiveStyle(elem,'visibility')=='hidden'){
返回false;
}
//显示样式等于“无”或具有祖先的任何元素
//显示样式等于“无”时不显示。
显示的功能(e){
if(bot.dom.getEffectiveStyle(e,'display')='none'){
返回false;
}
var parent=bot.dom.getParentElement(e);
return!显示父项| |(父项);
}
如果(!显示(元素)){
返回false;
}
//没有显示任何透明元素。
如果(!opt_ignoreOpacity&&bot.dom.getOpacity(elem)==0){
返回false;
}
//具有隐藏属性或具有隐藏属性的祖先的任何元素
//属性未显示
函数isHidden(e){
//IE还不支持隐藏属性
if(goog.userAgent.IE){
返回true;
}
if(例如hasAttribute){
if(例如hasAttribute('hidden')){
返回false;
}
}否则{
返回true;
}
var parent=bot.dom.getParentElement(e);
return!parent | | ishiden(parent);
}
如果(!isHidden(elem)){
返回false;
}
//未显示任何没有正尺寸的元件。
函数正量化(e){
var rect=bot.dom.getClientRect(e);
if(rect.height>0&&rect.width>0){
返回true;
}
//垂直或水平SVG路径元素将报告零宽度或
//高度,但如果笔划宽度为正,则“显示”。
if(bot.dom.isElement(e,'PATH')&(rect.height>0 | | rect.width>0)){
var strokeWidth=bot.dom.getEffectiveStyle(即“笔划宽度”);
return!!strokeWidth&(parseInt(strokeWidth,10)>0);
}
//零尺寸元素仍应被视为具有正尺寸
//如果它们具有正大小的子元素或文本节点,除非
//元素的“溢出”样式为“隐藏”。
返回bot.dom.getEffectiveStyle(e,'overflow')!='hidden'&&
goog.array.some(e.childNodes,function(n){
返回n.nodeType==goog.dom.nodeType.TEXT||
(bot.dom.isElement(n)和positiveSize(n));
});
}
if(!positiveSize(elem)){
返回false;
}
//不显示溢出隐藏的元素。
if(bot.dom.getOverflowState(elem)=bot.dom.OverflowState.HIDDEN){
返回false;
}
不确定它是否真的需要更多的解释,注释非常清楚。如果您想添加更多信息,请告诉我。

根据
isDisplayed()
方法确定Wheat
/session/{session id}/element/{element id}/displayed