您好,登錄后才能下訂單哦!
selenium操作中隱藏的元素有哪些,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
有時候我們會碰到一些元素不可見,這個時候selenium就無法對這些元素進行操作了。例如,下面的情況:
Python
頁面主要通過“display:none”來控制整個下拉框不可見。這個時候如果直接操作這個下拉框,就會提示:
from selenium import webdriverfrom selenium.webdriver.support.select import Selectimport os,timedriver = webdriver.Chrome()file_path = 'file:///' + os.path.abspath('test.html')driver.get(file_path)sel = driver.find_element_by_tag_name('select')Select(sel).select_by_value('opel')time.sleep(2)driver.quit()
exceptions.ElementNotVisibleException:Message:elementnotvisible:Elementisnotcurrentlyvisibleandmaynotbemanipulated
我們需要通過javaScript修改display的值。
……js = 'document.querySelectorAll("select")[0].style.display="block";'driver.execute_script(js)sel = driver.find_element_by_tag_name('select')Select(sel).select_by_value('opel')……
document.querySelectorAll("select")[0].style.display="block";
document.querySelectorAll("select")選擇所有的select。
[0]指定這一組標簽里的第幾個。
style.display="block";修改樣式的display="block",表示可見。
執行完這句js代碼后,就可以正常操作下拉框了。
Java
以下為java中的操作
package com.jase.base;import java.io.File;import org.openqa.selenium.WebDriver;import org.openqa.selenium.By.ById;import org.openqa.selenium.chrome.ChromeDriver;import org.openqa.selenium.support.ui.Select;import org.openqa.selenium.JavascriptExecutor;public class SelectTest { public static void main(String[] args){ WebDriver driver = new ChromeDriver(); File file = new File("C:/Users/fnngj/Desktop/test.html"); String filePath = file.getAbsolutePath(); driver.get(filePath); String js = "document.querySelectorAll('select')[0].style.display='block';"; ((JavascriptExecutor)driver).executeScript(js); Select sel = new Select(driver.findElement(ById.xpath("//select"))); sel.selectByValue("opel"); }}
看完上述內容,你們掌握selenium操作中隱藏的元素有哪些的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。