使用selenium登入126郵箱定位失敗原因

2021-08-30 08:47:23 字數 1253 閱讀 2270

使用id定位

message: no such element: unable to locate element: ,找不到元素。原因是由於此id是動態id,每次重新整理頁面該值都會變話。因此找不到對應元素。

使用類定位

原因是:該class是含有空格的復合類。無法直接使用find_element_by_class_name()方法查詢。

還是提示找不到元素,原因是:由於定位元素僅會在當前所處的frame中尋找該元素,如果有多個frame時需要先切換到對應的frame下才能夠找到該元素。仔細檢視頁面資訊,找到到id為x-urs-iframe的iframe。

如果未載入完畢,依舊定位不到元素所在的frame。所以此時需要加乙個延時操作,time.sleep()。使用time的時候需要import time模組。

然後就可以正常執行成功了

import time

driver = webdriver.chrome()

driver.get("")

time.sleep(2)

driver.switch_to.frame("x-urs-iframe")

# 定位到對應的frame

driver.find_element_by_css_selector(".dlemail").clear()

# 單個屬性

driver.find_element_by_css_selector("[class='j-inputtext dlemail']").send_keys("user")

# 直接包含空格的css屬性定位

driver.find_element_by_css_selector(".j-inputtext.dlpwd").clear()

# css定位雙屬性

driver.find_element_by_css_selector(".dlpwd").send_keys("pwd")

# css定位單屬性

driver.find_element_by_css_selector(".loginbox").click()

1.需要先定位iframe,使用任何定位方法均可

2.這裡就是用tagname定位了

iframe =driver.find_element_by_tag_name("iframe")
3.定位之後切換即可 

driver.switch_to_frame(iframe)

126郵箱登入 iframe

開始直接定位根本定位不了,後來發現裡麵包了乙個iframe,解決辦法如下 寫法一 webdriver driver new firefoxdriver driver.get driver.findelement by.id lbnormal click x urs iframe 注意iframe d...

python使用selenium 自動登入百度賬號

要點 1.使用火狐瀏覽器 2.注意驗證碼的彈出,我還不會自動化輸入驗證碼,希望後面能學會 from selenium import webdriver browser webdriver.firefox 使用火狐 browser.get browser.implicitly wait 3 brows...

python使用selenium模擬登入網易

coding utf 8 from selenium import webdriver import time import json name input 輸入登入名 pwd input 輸入密碼 name pwd print name pwd driver webdriver.chrome 建立...