欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

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

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

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

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

      問題來源

      一般來說,我們進(jìn)行自動化登錄,之后想直接進(jìn)行對圖書的續(xù)約操作,但是利用元素定位的方法,怎么都找不到元素,我一直以為是我的規(guī)則用的不對,導(dǎo)致元素找不到,其實(shí),只是窗口句柄還停留在上一個頁面而已!對于新彈出的頁面還沒有定位!!那怎么可能找得到在新頁面的元素呢!這是新手(我)犯下最大的錯誤,只顧于對元素方法的定位,卻沒有意識到頁面發(fā)生跳轉(zhuǎn)后的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,這次能正常索引到值,但是!!我要說的是但是!!

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

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

      7.19補(bǔ)充

      應(yīng)該是搜索引擎熱點(diǎn)的問題,每次鍵入相同的值可能搜索結(jié)果首項(xiàng)會不一致的,百度可能更新熱點(diǎn)比較快把,所以出現(xiàn)了我所謂不穩(wěn)定的情況

      正題測試

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

      方法并不能實(shí)現(xiàn)對新窗口句柄的捕捉,我以bing主頁為測試頁,重新構(gòu)造了一下,#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)#----------操作一:進(jìn)行對關(guān)鍵字MrLevo520 CSDN搜索----------------browser.find_element_by_id(“sb_form_go”).click()#執(zhí)行此操作會進(jìn)行搜索,但是沒有彈出新窗口,所以句柄不用重定位 time.sleep(3)#----------操作二:對搜索頁面“我的CSDN”進(jìn)行點(diǎn)擊操作--------------browser.find_element_by_xpath(“/html/body/div/ol/li/h2/a”).click()#進(jìn)行當(dāng)前頁面點(diǎn)擊第一項(xiàng)

      #--------操作三:對新彈出的頁面再點(diǎn)擊“貢獻(xiàn)的資源”選項(xiàng)-----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)

      瀏覽器運(yùn)行結(jié)果只到如圖:

      而且拋出錯誤:

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

      可見,此語句并沒有實(shí)現(xiàn)句柄重定位的功能,然后我再試試下面的方法,所有語句不變,只改變獲取當(dāng)前句柄的語句,改成

      browser.switch_to_window(browser.window_handles[1])

      最后程序應(yīng)該是這樣:

      #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)#----------操作一:進(jìn)行對關(guān)鍵字MrLevo520 CSDN搜索----------------browser.find_element_by_id(“sb_form_go”).click()#執(zhí)行此操作會進(jìn)行搜索,但是沒有彈出新窗口,所以句柄不用重定位 time.sleep(3)#----------操作二:對搜索頁面“我的CSDN”進(jìn)行點(diǎn)擊操作--------------browser.find_element_by_xpath(“/html/body/div/ol/li/h2/a”).click()#進(jìn)行當(dāng)前頁面點(diǎn)擊第一項(xiàng)

      #--------操作三:對新彈出的頁面再點(diǎn)擊“貢獻(xiàn)的資源”選項(xiàng)-----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)

      最后結(jié)果,按照我的思路,進(jìn)行了相應(yīng)的點(diǎn)擊,最后如圖

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

      7.17-補(bǔ)充:另一種獲取句柄方法

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

      browser.switch_to_window(handle)

      那么結(jié)合到我的代碼中那就是這樣的:

      #Author:哈士奇說喵

      #因?yàn)樗阉饕鏅z索項(xiàng)根據(jù)熱度來排名,所以我只能對7.17的數(shù)據(jù)進(jìn)行測試和負(fù)責(zé),大家測試時候注意元素變化 #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)#----------操作一:進(jìn)行對關(guān)鍵字MrLevo520 CSDN搜索----------------browser.find_element_by_id(“sb_form_go”).click()#執(zhí)行此操作會進(jìn)行搜索,但是沒有彈出新窗口,所以句柄不用重定位 time.sleep(3)#----------操作二:對搜索頁面第一項(xiàng)進(jìn)行點(diǎn)擊操作--------------browser.find_element_by_xpath(“/html/body/div/ol/li/h2/a”).click()#進(jìn)行當(dāng)前頁面點(diǎn)擊第一項(xiàng)

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

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

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

      #------------------操作四:點(diǎn)擊“貢獻(xiàn)的資源”-------------------#注意此時已經(jīng)是新彈出的第二個窗口了,需要重新定位句柄

      browser.switch_to_window(browser.window_handles[2])#方法一,注意window_handles[2]變成了2 '''for handle in browser.window_handles:#方法二,始終獲得當(dāng)前最后的窗口 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)

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

      代碼實(shí)現(xiàn)了從1,到2,點(diǎn)擊頭像后,再跳轉(zhuǎn)到3主頁,之后再點(diǎn)擊“貢獻(xiàn)資源”,實(shí)現(xiàn)的動圖如下:

      Pay Attention

      1.搜索引擎根據(jù)熱度來排名,也就是代碼具有“不穩(wěn)定性”,應(yīng)該根據(jù)自己實(shí)際情況,定位不同元素,我只對當(dāng)前編輯時間的數(shù)據(jù)負(fù)責(zé)

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

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

      方法一 VS 方法二

      相比較于方法二,方法一的優(yōu)點(diǎn)在于后續(xù)操作,比如關(guān)閉第幾個窗口,句柄傳遞是按照順序來的。缺點(diǎn)在于對于較多新頁面,有時候彈出窗口太多會變得難以計(jì)算。

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

      總結(jié)

      我姑且認(rèn)為這句語句,單獨(dú)作用于上述博客中是不可行的。

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

      最后上張動圖表示流程:

      最后

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

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

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

      來源:U大俠

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

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

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

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

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

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

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

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

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

      方法/步驟

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

      單擊“解除鎖定”后,變?yōu)榛疑?,單擊“確定”。這樣,PPT就能打開了。終極解決法1 打開一個ppt點(diǎn)擊“文件”里面的“選項(xiàng)”

      1.繼續(xù)找到:信任中心-信任中心設(shè)置-受保護(hù)的視圖,如圖

      2.3 在彈出的窗口中,把右側(cè)“受保護(hù)視圖”下的三個勾選項(xiàng)取消即可。

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

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

      第四篇:解決遠(yuǎn)程桌面無法連接的問題-總結(jié)的精華

      解決遠(yuǎn)程桌面無法連接的問題-總結(jié)的精華

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

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

      上面我們對這個工具介紹完畢了,我們還是言歸正傳談?wù)勥h(yuǎn)程桌面在使用過程中的遇到的一些問題吧。

      1、中斷遠(yuǎn)程桌面連接客戶端無法建立跟遠(yuǎn)程計(jì)算機(jī)的連接。導(dǎo)致這個錯誤的可能的原因是: 1)遠(yuǎn)程計(jì)算機(jī)上的遠(yuǎn)程連接可能沒有啟用。2)已超出遠(yuǎn)程計(jì)算機(jī)上的連接最大數(shù)。3)建立連接時出現(xiàn)了一個網(wǎng)絡(luò)錯誤 具體的解決辦法:

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

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

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

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

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

      3)刪除MSLicensing鍵,重啟系統(tǒng)。

      3、提示“遠(yuǎn)程計(jì)算機(jī)已結(jié)束連接”

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