selenium彈窗定位百度主頁“設置”問題


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()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM