第二種方法可能行不通,因為隐藏的按鈕在頁面加載後還沒有被渲染,所有找不到該元素就無法修改其屬性。----修正:該方案可用,前提是先把滑鼠懸停上去(前置條件),然後就可以找到from selenium import webdriver from selenium.webdriver.common.keys import Keys import time from selenium.webdriver import ActionChains # driver= webdriver.Firefox() driver= webdriver.Chrome() driver.get("https://www.baidu.com/") driver.maximize_window() driver.find_element_by_xpath("//*[@id=\"kw\"]").send_keys("selenium") driver.find_element_by_xpath("//*[@id=\"kw\"]").submit() #滑鼠懸停+點選隐藏的按鈕 #1.滑鼠放上去 time.sleep(2) # above=driver.find_element_by_xpath("//span[@id=\"s-usersetting-top\"]") above=driver.find_elements_by_xpath("//*[text()=\"設定\"]")[1] ActionChains(driver).move_to_element(above).perform() SearchSetting_Ele=driver.find_element_by_xpath("//*[text()=\"搜尋設定\"][1]") SearchSetting_Ele.click() #2.利用JS改變頁面屬性,例如輸入日期沒必要測試第三方控件,不是我們測試範圍的話,就可以改變控件屬性改成輸入日期。不常用,實在是沒有辦法才用 # js2 = 'document.querySelectorAll("div#head #s-user-setting-menu")[0].style.display="block";' # driver.execute_script(js2) #3.利用JQery滑鼠懸停方法 # js1 = "$('#s-usersetting-top').mouseover()" # jQuery 模拟滑鼠懸停 # driver.execute_script(js1) time.sleep(2) # driver.find_elements_by_xpath("//*[text()='進階搜尋']")[1].click() driver.find_element_by_xpath("(//*[text()='進階搜尋'])[2]").click() driver.find_element_by_xpath("//*[@id=\"adv_keyword\"]").send_keys("包含全部關鍵詞") driver.find_element_by_xpath("//input[@class=\"c-input adv-q-input switch-input\" and @name=\"q2\"]").send_keys("包含完整關鍵詞") driver.find_element_by_xpath("//input[@class=\"c-input adv-q-input switch-input\" and @name=\"q3\"]").send_keys("包含任意關鍵詞") driver.find_element_by_xpath("//div[@class=\"c-select-selection\"]/i[1]").click() driver.find_element_by_xpath("//p[@class=\"c-select-item\" and @data-for=\"gpc\"][4]").click() driver.find_element_by_xpath("(//i[@class=\"c-icon c-select-arrow\"])[2]").click() driver.find_element_by_xpath("//*[text()=\"所有格式\"]").click() driver.find_element_by_xpath("//*[@id=\"q5_2\"]").click() # driver.find_element_by_xpath("//*[@value=\"進階搜尋\"]").click() # time.sleep(2) driver.find_element_by_xpath("//*[@class=\"item\" and @data-tabid=\"general\"]").click() driver.find_element_by_xpath("//*[text()=\"儲存設定\"]").click()