一、selenium 中隱藏元素如何定位?
如果單純的定位的話,隱藏元素和普通不隱藏元素定位沒啥區(qū)別,用正常定位方法就行了
但是吧~~~能定位到并不意味著能操作元素(如click,clear,send_keys)
二、隱藏元素

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<p>這里有個(gè)按鈕,是隱藏的
<!-- type="hidden" -->
<br>
輸入賬號(hào)<input id="chi" name="hello" type="hidden">
<!-- style="display: none;" -->
<br>
<button id="fan" name="heo" style="display: none;">登錄</button>
<br>
<a hidden id="baidu" >訪問百度</a>
</p>
</body>
</html>

三、定位隱藏元素
隱藏元素用普通元素定位方法——可以定位到!
webDriver.get("file:front/display.html");
WebElement chi = webDriver.findElement(By.id("chi"));
//獲取元素屬性
System.out.println(chi.getAttribute("name"));//hello
//查看元素是否隱藏
System.out.println(chi.isDisplayed());//false
//運(yùn)行結(jié)果可以看出,隱藏元素用普通定位方法一樣可以定位到!
四、操作隱藏元素

用隱藏元素的sendKeys 和 click 方法都會(huì)報(bào)錯(cuò):ElementNotInteractableException: element not interactable,元素不可交互,不可以被操作。
首先 selenium 是無法操作隱藏元素的(但是能正常定位到),本身這個(gè)框架就是設(shè)計(jì)如此,如果非要去操作隱藏元素,那就用 js 的方法去操作,selenium 提供了一個(gè)入口 可 以 執(zhí)行 js 腳 本。
js 和 selenium 不同,頁面上有的元素(在 dom 里面的),都能正常的操作, 可以詳看前面的js篇
js操作隱藏元素
//js點(diǎn)擊 hidden 元素 百度
WebElement element = webDriver.findElement(By.id("baidu"));
JavascriptExecutor javascriptExecutor = webDriver;
javascriptExecutor.executeScript("arguments[0].click()",element);
五、display:none 和 visibility:hidden 和 type ="hidden"
-
visibility: hidden----將元素隱藏,但是在網(wǎng)頁中該占的位置還是占著。
-
例如有三個(gè)table,將中間的一個(gè)table hidden掉,你會(huì)發(fā)現(xiàn)在那個(gè)被hidden的table看不見了,但是,中間會(huì)留有很大的一空白,而這個(gè)空白就是這個(gè)table沒有被隱藏時(shí)所占的位置;
-
-
display: none----將元素的顯示設(shè)為無,即在網(wǎng)頁中不占任何的位置?!猧sDisplayed() =false
-
例如有三個(gè)table,將中間的一個(gè)table none掉,你會(huì)發(fā)現(xiàn)在剩下的兩個(gè)table中間不會(huì)有任何的空白。就好像中間的那個(gè)table從來不存在過一樣。
-
而none的作用更像是把元素從網(wǎng)頁中“去除”(當(dāng)然不是真的去除,只是效果是如此)
-
-
type ="hidden"和上面兩個(gè)不一樣,它叫做隱藏域,作為input 的一種輸入類型,它的特點(diǎn)就是“看不見”;——isDisplayed() =false
-
在表單插入中隱藏域的目的在于收集和發(fā)送信息,以利于被處理表單的程序所使用
-
注:隱藏只是在網(wǎng)頁頁面上不顯示輸入框,但是雖然隱藏了,還是具有form傳值功能。一般用來傳值,而不必讓用戶看到。文章來源:http://www.zghlxwxcb.cn/news/detail-846899.html
-
它可以隱藏有用但又不能讓瀏覽者看到的信息。文章來源地址http://www.zghlxwxcb.cn/news/detail-846899.html
-
到了這里,關(guān)于【Selenium】隱藏元素的定位和操作|隱藏與isDisplay方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!