北京汽车业务网站开发公司,桂林旅游攻略必去景点,东莞宣传册设计,东莞建站公司速推全网天下首选一、selenium 中隐藏元素如何定位#xff1f; 如果单纯的定位的话#xff0c;隐藏元素和普通不隐藏元素定位没啥区别#xff0c;用正常定位方法就行了 但是吧~~~能定位到并不意味着能操作元素#xff08;如click,clear,send_keys#xff09; 二、隐藏元素 如下图有个输入框…一、selenium 中隐藏元素如何定位 如果单纯的定位的话隐藏元素和普通不隐藏元素定位没啥区别用正常定位方法就行了 但是吧~~~能定位到并不意味着能操作元素如click,clear,send_keys 二、隐藏元素 如下图有个输入框和一个登录的按钮本来是显示的 元素的属性隐藏和显示主要是 typehidden和 styledisplay: none;属性来控制的接下来在元素属性里面让它隐藏 !DOCTYPE htmlhtml langenheadmeta charsetUTF-8titleTitle/title/headbodyp这里有个按钮是隐藏的!-- typehidden --br输入账号input idchi namehello typehidden!-- styledisplay: none; --brbutton idfan nameheo styledisplay: none;登录/buttonbra hidden idbaidu hrefhttps://www.baidu.com访问百度/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//运行结果可以看出隐藏元素用普通定位方法一样可以定位到四、操作隐藏元素 隐藏元素可以正常定位到只是不能操作定位元素和操作元素是两码事操作元素是 click,clear,send_keys 这些方法 用隐藏元素的sendKeys 和 click 方法都会报错ElementNotInteractableException: element not interactable元素不可交互不可以被操作。 首先 selenium 是无法操作隐藏元素的但是能正常定位到本身这个框架就是设计如此如果非要去操作隐藏元素那就用 js 的方法去操作selenium 提供了一个入口 可 以 执行 js 脚 本。
js 和 selenium 不同页面上有的元素在 dom 里面的都能正常的操作 可以详看前面的js篇 js操作隐藏元素 a hidden idbaidu hrefhttps://www.baidu.com访问百度/a 这个链 接是隐藏的但是能用 js 点到 //js点击 hidden 元素 百度WebElement element webDriver.findElement(By.id(baidu));JavascriptExecutor javascriptExecutor webDriver;javascriptExecutor.executeScript(arguments[0].click(),element);运行完之后页面正常的点击跳转到百度页面了 ⚠️ 也可以先用 js 去掉 hidden 属性再用 selenium 操作但是可以直接js点击何必多此一举 五、display:none 和 visibility:hidden 和 type hidden visibility: hidden----将元素隐藏但是在网页中该占的位置还是占着。 例如有三个table将中间的一个table hidden掉你会发现在那个被hidden的table看不见了但是中间会留有很大的一空白而这个空白就是这个table没有被隐藏时所占的位置 display: none----将元素的显示设为无即在网页中不占任何的位置。——isDisplayed() false 例如有三个table将中间的一个table none掉你会发现在剩下的两个table中间不会有任何的空白。就好像中间的那个table从来不存在过一样。 而none的作用更像是把元素从网页中“去除”当然不是真的去除只是效果是如此 type hidden和上面两个不一样它叫做隐藏域作为input 的一种输入类型它的特点就是“看不见”——isDisplayed() false 在表单插入中隐藏域的目的在于收集和发送信息以利于被处理表单的程序所使用 注隐藏只是在网页页面上不显示输入框但是虽然隐藏了还是具有form传值功能。一般用来传值而不必让用户看到。 它可以隐藏有用但又不能让浏览者看到的信息。