firefox版本:61
當點擊“設置”元素后,是無法定位的,無法定位代碼如下:
(當時這個對於火狐無法定位的代碼,Chrome瀏覽器是可以正常使用的)
1 from selenium import webdriver 2 from time import sleep 3 4 driver=webdriver.Firefox() 5 driver.get("https://www.baidu.com") 6 7 driver.find_element_by_link_text("設置").click() 8 sleep(2) 9 driver.find_element_by_link_text("搜索設置").click() 10 sleep(3) 11 12 driver.find_element_by_link_text("保存設置").click() 13 14 15 alert=driver.switch_to_alert 16 print(alert.text) 17 alert.accept() 18 sleep(2) 19 20 driver.quit()
針對點擊元素修改為鼠標懸停后,可正常定位:
from selenium import webdriver from time import sleep from selenium.webdriver.common.action_chains import ActionChains driver=webdriver.Firefox() driver.get("https://www.baidu.com") mouse=driver.find_element_by_link_text("設置") ActionChains(driver).move_to_element(mouse).perform() sleep(2) driver.find_element_by_link_text("搜索設置").click() sleep(3) driver.find_element_by_link_text("保存設置").click() alert=driver.switch_to_alert print(alert.text) alert.accept() sleep(2) driver.quit()
在后面添加一個最終版的代碼:
# coding:utf-8 from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains#鼠標操作 from selenium.webdriver.support.select import Select#下拉框 import time driver = webdriver.Firefox() url = "https://www.baidu.com" driver.get(url)#打開百度主頁 driver.implicitly_wait(20)#隱式等待20s # 鼠標移動到“設置”按鈕 mouse = driver.find_element_by_link_text("設置")#定位到“設置” ActionChains(driver).move_to_element(mouse).perform()#鼠標懸停 driver.find_element_by_link_text("搜索設置").click()#定位到“搜索設置”后點擊 # 通過text:select_by_visible_text() s = driver.find_element_by_id("nr") Select(s).select_by_visible_text("每頁顯示20條") time.sleep(3) s.click() driver.find_element_by_link_text("保存設置").click() time.sleep(5) # 獲取alert彈框 t = driver.switch_to_alert() print(t.text) t.accept()
