1. 程式人生 > >Mayi_Selenium登錄126郵箱,定位不到賬號輸入框解決辦法

Mayi_Selenium登錄126郵箱,定位不到賬號輸入框解決辦法

http send 多個 class tle 進入 沒有 drive 復制代碼

轉自:https://www.cnblogs.com/wuhl-89/p/7778463.html

查看元素發現id為動態,所以不選擇以id定位。

技術分享圖片

使用xpath路徑定位,每次獲取元素都失敗,最後網上查了下發現其嵌套在表單frame/iframe中,所以我們先要進入frame/iframe中,然後再定位

frame/iframe的定位方式有3種,一是通過id;二是通過name;三是xpath

例:switch_to_frame(id) ; 或是 switch_to_frame(name);若frame沒有id和name,只能是通過xpath方式定位到frame,switch_to_frame(xpath)

技術分享圖片

代碼如下:

技術分享圖片
 1 from selenium import webdriver
 2 import time
 3 
 4 url = ‘http://www.126.com‘
 5 driver = webdriver.Firefox()
 6 driver.get(url)
 7 driver.switch_to.frame("x-URS-iframe")  #進入到表單中
 8 time.sleep(5)
 9 #使用Xpath定位
10 driver.find_element_by_xpath(‘/html/body/div[2]/div[2]/div[2]/form/div/div[1]/div[2]/input‘).send_keys(‘11111‘)
技術分享圖片

以上可以解決Firefox的問題,但是在Chrome上卻找不到frame

Chrome解決辦法:

driver.switch_to.frame("x-URS-iframe")這個括號內可以寫入frame的序號,如有多個frame,最外層的為0,裏面為1,以此類推。
所以 driver.switch_to.frame(0),這樣就可以了。

Mayi_Selenium登錄126郵箱,定位不到賬號輸入框解決辦法