久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

解決Selenium彈出新頁面無法定位元素問題

時間:2019-05-13 23:23:42下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《解決Selenium彈出新頁面無法定位元素問題》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《解決Selenium彈出新頁面無法定位元素問題》。

第一篇:解決Selenium彈出新頁面無法定位元素問題

解決Selenium彈出新頁面無法定位元素問題

問題來源

一般來說,我們進行自動化登錄,之后想直接進行對圖書的續約操作,但是利用元素定位的方法,怎么都找不到元素,我一直以為是我的規則用的不對,導致元素找不到,其實,只是窗口句柄還停留在上一個頁面而已!對于新彈出的頁面還沒有定位!!那怎么可能找得到在新頁面的元素呢!這是新手(我)犯下最大的錯誤,只顧于對元素方法的定位,卻沒有意識到頁面發生跳轉后的handles的變化。

請看測試;#coding=utf-8

from selenium import webdriver import time

browser=webdriver.Firefox()

browser.get(“http:///body/div[3]/div[3]/div/div[3]/div[4]/h3/a”).click()#我這里修改了一下div[4],大哥的索引直接到有道翻譯了,不利于下一步測試 time.sleep(1)

ok,這次能正常索引到值,但是!!我要說的是但是!!

這根本沒有跳轉頁面!還是在同一個頁面進行操作的!如果我把大哥的代碼改成:

在我測試的時候,發生了奇怪的事情,同樣的代碼,有時候能跑有時候拋出錯誤,我已設定休眠時間,難道是我頻繁訪問導致百度封我?剛才上述的代碼我都實際測試過的,但是現在又不能用了--wtf--,所以。我換了穩定的引擎,我采用bing搜索來試試,上面的全部作廢,如果有人知道問題出在哪,請留言

7.19補充

應該是搜索引擎熱點的問題,每次鍵入相同的值可能搜索結果首項會不一致的,百度可能更新熱點比較快把,所以出現了我所謂不穩定的情況

正題測試

我和上述那位大哥不同的觀點在于,他用的 sreach_window=browser.current_window_handle

方法并不能實現對新窗口句柄的捕捉,我以bing主頁為測試頁,重新構造了一下,#coding=utf-8 from selenium import webdriver import time

browser=webdriver.Firefox()browser.get(“http://cn.bing.com/”)keywords = 'MrLevo520 CSDN' send_keywords=keywords.decode('utf-8')#中英混輸入可防止亂碼

browser.find_element_by_id(“sb_form_q”).send_keys(send_keywords)

time.sleep(1)#----------操作一:進行對關鍵字MrLevo520 CSDN搜索----------------browser.find_element_by_id(“sb_form_go”).click()#執行此操作會進行搜索,但是沒有彈出新窗口,所以句柄不用重定位 time.sleep(3)#----------操作二:對搜索頁面“我的CSDN”進行點擊操作--------------browser.find_element_by_xpath(“/html/body/div/ol/li/h2/a”).click()#進行當前頁面點擊第一項

#--------操作三:對新彈出的頁面再點擊“貢獻的資源”選項-----sreach_window=browser.current_window_handle browser.find_element_by_xpath(“/html/body/div[3]/div[2]/div[2]/div/a[3]”).click()

time.sleep(5)

瀏覽器運行結果只到如圖:

而且拋出錯誤:

selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: {“method”:“xpath”,“selector”:“/html/body/div[3]/div[2]/div[2]/div/a[3]”}

可見,此語句并沒有實現句柄重定位的功能,然后我再試試下面的方法,所有語句不變,只改變獲取當前句柄的語句,改成

browser.switch_to_window(browser.window_handles[1])

最后程序應該是這樣:

#coding=utf-8 from selenium import webdriver import time

browser=webdriver.Firefox()browser.get(“http://cn.bing.com/”)keywords = 'MrLevo520 CSDN' send_keywords=keywords.decode('utf-8')#中英混輸入可防止亂碼

browser.find_element_by_id(“sb_form_q”).send_keys(send_keywords)time.sleep(1)#----------操作一:進行對關鍵字MrLevo520 CSDN搜索----------------browser.find_element_by_id(“sb_form_go”).click()#執行此操作會進行搜索,但是沒有彈出新窗口,所以句柄不用重定位 time.sleep(3)#----------操作二:對搜索頁面“我的CSDN”進行點擊操作--------------browser.find_element_by_xpath(“/html/body/div/ol/li/h2/a”).click()#進行當前頁面點擊第一項

#--------操作三:對新彈出的頁面再點擊“貢獻的資源”選項-----browser.switch_to_window(browser.window_handles[1])browser.find_element_by_xpath(“/html/body/div[3]/div[2]/div[2]/div/a[3]”).click()

time.sleep(5)

最后結果,按照我的思路,進行了相應的點擊,最后如圖

所以從上述的例子上來說,語句sreach_window=browser.current_window_handle并沒有實現重定位,可能我才疏學淺,但至少,在上述的那位大哥的博客中,寫的是錯誤的,運行失敗,我對2016.7.16的所有數據負責,實際測試失敗。

7.17-補充:另一種獲取句柄方法

還有另一種方法,就是直接定位當前最新彈出的窗口。代碼是這樣的 for handle in browser.window_handles:#方法二,始終獲得當前最后的窗口,所以多要多次使用

browser.switch_to_window(handle)

那么結合到我的代碼中那就是這樣的:

#Author:哈士奇說喵

#因為搜索引擎檢索項根據熱度來排名,所以我只能對7.17的數據進行測試和負責,大家測試時候注意元素變化 #coding=utf-8 from selenium import webdriver import time

browser=webdriver.Firefox()browser.get(“http://cn.bing.com/”)keywords = 'MrLevo520 CSDN' send_keywords=keywords.decode('utf-8')#中英混輸入可防止亂碼

browser.find_element_by_id(“sb_form_q”).send_keys(send_keywords)

time.sleep(1)#----------操作一:進行對關鍵字MrLevo520 CSDN搜索----------------browser.find_element_by_id(“sb_form_go”).click()#執行此操作會進行搜索,但是沒有彈出新窗口,所以句柄不用重定位 time.sleep(3)#----------操作二:對搜索頁面第一項進行點擊操作--------------browser.find_element_by_xpath(“/html/body/div/ol/li/h2/a”).click()#進行當前頁面點擊第一項

#--------操作三:對新彈出的頁面再點擊“我的頭像”選項-----#注意此時已經是彈出的第一個窗口了,需要重新定位句柄

'''browser.switch_to_window(browser.window_handles[1])#方法一''' for handle in browser.window_handles:#方法二,始終獲得當前最后的窗口 browser.switch_to_window(handle)

browser.find_element_by_xpath(“//div[@id='body']/div[2]/div/div/ul[2]/div/a”).click()

#------------------操作四:點擊“貢獻的資源”-------------------#注意此時已經是新彈出的第二個窗口了,需要重新定位句柄

browser.switch_to_window(browser.window_handles[2])#方法一,注意window_handles[2]變成了2 '''for handle in browser.window_handles:#方法二,始終獲得當前最后的窗口 browser.switch_to_window(handle)'''

browser.find_element_by_xpath(“/html/body/div[3]/div[2]/div[2]/div/a[3]”).click()

time.sleep(5)

上面的代碼,我要說幾點,總共實現完成會存在三個瀏覽器窗口,也就是相當于實現了兩次句柄重定位功能,也就是下面的圖片,對bing搜索“MrLevo520 CSDN”跳出的最熱項,也就是這一篇(感謝大家厚愛),但是昨天最熱彈出來的是直接是我的主頁,大家從上面的動圖應該也可以看出來,所以等你測試這段代碼的時候,可能最熱項目又變化了,道理大家懂就ok,不影響重抓句柄代碼。

代碼實現了從1,到2,點擊頭像后,再跳轉到3主頁,之后再點擊“貢獻資源”,實現的動圖如下:

Pay Attention

1.搜索引擎根據熱度來排名,也就是代碼具有“不穩定性”,應該根據自己實際情況,定位不同元素,我只對當前編輯時間的數據負責

2.在實際操作過程中,會產生第一個頁面還沒等第二個頁面緩沖完,直接又“占領”主視覺的問題,別擔心,句柄還是在傳遞的,程序一直在跑,而且沒有出錯,過一會時間就會更新加載頁面的,如果想要關閉無關頁面,請看這篇博客 基于Selenium一鍵寫CSDN博客

3.可能我的代碼第一次獲取句柄和第二次獲取句柄不一樣的方法,這是為了展示,你可以兩次句柄獲取都用方法二,也可以都是用方法一,但是方法一注意修改標號。

方法一 VS 方法二

相比較于方法二,方法一的優點在于后續操作,比如關閉第幾個窗口,句柄傳遞是按照順序來的。缺點在于對于較多新頁面,有時候彈出窗口太多會變得難以計算。

而方法二,一直在獲取最后的窗口,如果你只是對最后的窗口進行操作,也就是(自己定義的)”前向“操作時,不計后果,可以直接拿來用,而且代碼不變。缺點在于,如果要返回到某個窗口句柄,那就顯得沒有方法一來的好,至少我現在是這么認為的,可能以后我會回來修改。

總結

我姑且認為這句語句,單獨作用于上述博客中是不可行的。

所以我在后續的博客中對窗口重定向語句改成了browser.switch_to_window(browser.window_handles[1]),至少在我的實驗中,這句語句實現了我需要的操作。

最后上張動圖表示流程:

最后

將待解決實際問題解決,方法總是好多種,就看自己想不想解決。

第二篇:格式化u盤彈出無法完成格式化提示的解決妙招

格式化u盤彈出“無法完成格式化”提示的解決妙招

來源:U大俠

不知道你在格式化u盤的時候,是否遭遇過這種情況:u盤還沒格式化完畢,就彈出一個“windows無法完成格式化”的提示框,如果對于電腦又不是很懂的話,是不是覺得很困擾呢?U大俠小編幫你解決這一小問題。

如上圖所示就是小編在格式化u盤時彈出的提示窗口,一般情況下出現這一問題是由于u盤隨意拔插、u盤中毒、u盤被其他應用程序占用等情況所導致的,下面就教大家如何解決問題。

將u盤插入到電腦的usb插口,利用360等軟件對u盤進行一次檢查,如有中病毒則先對u盤進行殺毒。在確認u盤沒有重病毒的情況下電腦屏幕左下方的windows按鈕,在上方鍵入cmd并按回車鍵確認即可彈出如下圖所示的dos窗口。

隨后在dos窗口下輸入“format X: /fs:fat32”指令,X指的是我們插入u盤時系統所指認給u盤的盤符,輸入完畢之后按下回車鍵即可開始。如下圖所示的格式化操作,在格式化開始時需要我們再次確認驅動器是否正確,我們根據提示按下鍵盤上的回車鍵即可。

格式化的過程需要5-10才可以完成,在格式化完成時還需要再次按下回車鍵繼續后續的工作,屆時需要注意屏幕上的提示進行操作。

在此,小編提示大家u盤在使用時不能在u盤進行讀寫的過程中將u盤拔出來,雖然u盤支持熱拔插功能,但長期如此操作可能會導致u盤中的數據丟失,也會影響u盤的使用壽命。

u盤現已成為辦公室上班族不可缺少的工具了,它可以幫助我們存儲一些重要的數據及上班所需要的文件,由于它的體積小,方便攜帶,因此,上班族的朋友都會自備一個u盤。但是使用u盤過程,不可避免會出現各式各樣的問題,不用擔心,多看看u大俠常見問題教程,會一一為你解憂!

第三篇:解決下載的PPT無法打開、需要修復的問題

在網上(百度文庫)下載了PPT后,打開時提示如圖所示的“下載的內容有問題,需要修復”的對話框,而點擊“修復”后仍然無法打開。使用修復軟件也無濟于事。這個問題困擾了許多人,下面就告訴大家怎么解決這個問題。

方法/步驟

在下載的PPT上單擊“右鍵”-“屬性”,在下方找到“解除鎖定”(如圖所示)。

單擊“解除鎖定”后,變為灰色,單擊“確定”。這樣,PPT就能打開了。終極解決法1 打開一個ppt點擊“文件”里面的“選項”

1.繼續找到:信任中心-信任中心設置-受保護的視圖,如圖

2.3 在彈出的窗口中,把右側“受保護視圖”下的三個勾選項取消即可。

終極解決法2 1.打開IE瀏覽器,點工具菜單,點Internet選項,然后選擇“高級”選項卡。

2.找到“檢查下載的程序的簽名”,取消它的勾然后確認就可以了。

第四篇:解決遠程桌面無法連接的問題-總結的精華

解決遠程桌面無法連接的問題-總結的精華

遠程桌面連接組件是從Windows 2000 Server開始由微軟公司提供的,WINDOWS 2000 SERVER中他不是默認安裝的。該組件一經推出受到了很多用戶的擁護和喜好,所以在WINDOWS XP和2003中微軟公司將該組件的啟用方法進行了改革,通過簡單的勾選就可以完成在XP和2003下遠程桌面連接功能的開啟。

當某臺計算機開啟了遠程桌面連接功能后我們就可以在網絡的另一端控制這臺計算機了,通過遠程桌面功能我們可以實時的操作這臺計算機,在上面安裝軟件,運行程序,所有的一切都好像是直接在該計算機上操作一樣。這就是遠程桌面的最大功能,通過該功能網絡管理 遠程桌面連接員可以在家中安全的控制單位的服務器,而且由于該功能是系統內置的所以比其他第三方遠程控制工具使用更方便更靈活。

上面我們對這個工具介紹完畢了,我們還是言歸正傳談談遠程桌面在使用過程中的遇到的一些問題吧。

1、中斷遠程桌面連接客戶端無法建立跟遠程計算機的連接。導致這個錯誤的可能的原因是: 1)遠程計算機上的遠程連接可能沒有啟用。2)已超出遠程計算機上的連接最大數。3)建立連接時出現了一個網絡錯誤 具體的解決辦法:

有時候是這個錯誤提示:由于網絡錯誤,連接被中斷,請重新連接到遠程計算機;遠程連接我肯定是開啟了的,防火墻里面3389端口也是打開的,并且連接其他的服務器就可以連接上,說明我本機沒問題,用掃描軟件,掃描了一下這個服務器,顯示IP和端口都是存在的,說明這個服務器網絡也沒問題,實在沒辦法,只有不斷的測試,后來在系統日志里面看到很多條系統錯誤信息。其中:嚴重錯誤“RDP 協議組件 “DATA ENCRYPTION” 在協議流中發現一個錯誤并且中斷了客戶端連接。”幾經周折得知這是因為Certificate子鍵負責終端服務通信中數據信息的認證和加密,它一旦被損壞,終端服務的協議組件就會檢測到錯誤,中斷客戶機與終端服務器之間的通信。導致Certificate子鍵損壞的原因很多,如管理員安裝和卸載某些系統軟件、對終端服務參數的不合理配置等。這時我們需要重置該鍵值中的內容,才能修復終端服務。

進入注冊表編輯器窗口,展開“HKEY_LOCAL_MA CHINE SYSTEMCurrentCon trolSetServicesTermService Parame ters”,找到名為 “Cer tificate”的子鍵,將它刪除,重新啟動XP系統或Windows 2000 Server服務器,系統就會重新生成“ Certificate”子鍵,這樣客戶端就能正常連接到終端服務器了。

在終端服務器出現無法連接的問題后,我們首先要判斷這是不是網絡故障引起的,檢測遠程客戶端和XP系統(Windows 2000 Server服務器)是否能夠正常連接到網絡;然后就要檢查終端服務器的加密級別是否設置過高。排除上述原因后,就有可能是“Certificate”子鍵損壞了。此外,“HKEY_LOCAL _MACHINE SYSTEMCur rentControlSetServicesTerm ServiceParameters”下的 “X509 Certificate”和“X509 Certificate ID”損壞了也有可能導致終端服務出現問題,它們的修復方法與“Certificate”子鍵損壞后的修復方法相同。

2、提示“本地計算機客戶端訪問許可不能升級或更新”的解決方法

1)打開被控機的注冊表編輯器,定位到HKLMSOFTWAREMicrosoftMSLicensing。2)備份MSLicensing鍵。

3)刪除MSLicensing鍵,重啟系統。

3、提示“遠程計算機已結束連接”

1)打開被控機的注冊表編輯器,定位到HKLMSYSTEMControlSet001EnumRootRDPDR,備份該項;右鍵單擊該項,選擇“權限”,為當前登錄的用戶增添“完全控制”的權限。2)新建key文件,將以下內容寫入,雙擊導入注冊表后重啟計算機即可。Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINESYSTEMControlSet001EnumRootRDPDR

主站蜘蛛池模板: 日本看片一二三区高清| 国产综合18久久久久久| 久久婷婷国产综合精品| 国产欧美另类精品久久久| 大伊香蕉精品一区视频在线| 丁香五月亚洲中文字幕| 无码专区永久免费av网站| 日韩精品一区二区av在线| 超碰97人人做人人爱亚洲尤物| 超碰香蕉人人网99精品| 精品国产va久久久久久久冰| 97久久超碰精品视觉盛宴| 国产av丝袜一区二区三区| 精品国产拍国产天天人| 国产日韩欧美一区二区东京热| 少妇午夜福利一区二区| 亚洲国产长腿丝袜av天堂| 午夜理论片yy44880影院| 免费精品国产一区二区三区| 日韩人妻无码精品专区906188| 亚洲国产美国国产综合一区二区| 精品人妻午夜一区二区三区四区| 老熟女重囗味hdxx69| 国产片av不卡在线观看国语| 四虎国产成人永久精品免费| 男女男精品免费视频网站| 亚洲国产99精品国自产拍| 亚洲国产成人欧美在线观看| 人妻丰满熟妇av无码区| 国产超爽人人爽人人做人人爽| 国产69久久精品成人看| 99精品久久精品一区二区| 免费无码av片在线观看潮喷| 99re久久资源最新地址| 成人性生交大片免费看| 色香阁综合无码国产在线| 国产乱人伦偷精品视频aaa| 亚洲国产成人无码av在线影院| 婷婷综合另类小说色区| 日本熟妇厨房xxxxx乱| 中文字幕在线观看|