當前位置:首頁 » 編程語言 » pythonselenium多線程

pythonselenium多線程

發布時間: 2022-02-24 07:31:58

『壹』 用python selenium提取網頁中的所有<a>標簽中的超級鏈接地址

提取所有鏈接應該用循環:

urls=driver.find_elements_by_xpath("//a")

forurlinurls:
print(url.get_attribute("href"))

如果get_attribute方法報錯應該是沒有找到a標簽對象,如果確定是有的話,可能是頁面載入比較慢還沒載入出來,selenium默認是不會等待對象出現的,需要在找對象前加一些等待時間;另外如果頁面上有iframe的話需要先切換進去才能找到裡面的對象。

『貳』 python+selenium 多線程調用的方法中 為什麼不能新打開瀏覽器窗口

map是系統關鍵字,不能把它做list用。


map2=3
for k in range(0,map2):
t =threading.Thread(target=te_check())
t.setDaemon(True)
t.start()

這個可以用

『叄』 python+selenium 在執行測試腳本時,遇到錯誤如何能繼續執行下去而不停止

(1)遇到錯誤繼續執行需要做好異常處理就好了
(2)定位元素有時成功有時失敗,可能由於網路不穩定,元素沒有載入出來,腳本就去找這個元素,那肯定會失敗的,你可以試下用顯示等待,等頁面全部載入出來後,再進行定位元素操作

『肆』 python+selenium中,如何定位相同的多個ID

默認如果有多個匹配內容的話,selenium匹配到第一個內容;
你應該匹配到的內容應該不是第一個

『伍』 Python+selenium如何定位多層嵌套元素

有時候,什麼定位元素的方法都試過了,還是定位不到元素,就考慮frame切換問題 driver.switchTo().frame("定位到的frame元素"); //接下來就可以在這個frame框架內定位該框架里的元素了 driver.findElement(By.name("message")).sendKeys("top"); //如果定位另一框架內元素,需返回到web頁面,再進行切換 driver.switchTo().defaultContent(); driver.switchTo().frame("要定位的frame元素");

『陸』 selenium+python有什麼方法可以運行的時候提高下速度嗎

第一個是 Socket,它提供了標準的 BSD Sockets API。
第二個是 SocketServer, 它提供了伺服器中心類,可以簡化網路伺服器的開發。

『柒』 關於蟲師的pdf中python+selenium的多進程執行測試用例失敗的問題

#之前用過如下代碼爬過豆瓣用戶,效率還可以
#好像叫gevent協稱模塊來著,你可以試試。

#!/usr/bin/envpython
#coding:utf-8
fromseleniumimportwebdriver
fromselenium.webdriver.phantomjs.
fromgeventimportmonkey

monkey.patch_all()
importgevent
importsys
importtime
defdoJob(urls,name):
service_args=[

]
browser=webdriver.PhantomJS(executable_path=r'D:TestProjectphantomjsinphantomjs.exe',service_args=service_args)
wr=open('done/'+name+'.txt','w')
forurlinurls:
browser.get(url)
time.sleep(1)
soup=BeautifulSoup(browser.page_source.encode('utf-8'))
findNames=soup.findAll('div',attrs={'class':'name'})
iffindNamesisNone:
printurl
forsubinfindNames:
n=sub.a.string.encode('utf8')ifsub.a.stringisnotNoneelse''
pl=sub.span.string.encode('utf8')ifsub.span.stringisnotNoneelse''
wr.write(n+','+pl)
wr.write(' ')
wr.close()
browser.quit()
files={'culture':[],'travel':[],'ent':[],'fashion':[],'life':[],'tech':[]}
forkey_fninfiles:
withopen(key_fn+'.link','r')asf:
files[key_fn]=f.read().split(' ')
gevent.joinall([
gevent.spawn(doJob,files['culture'],'culture'),
gevent.spawn(doJob,files['travel'],'travel'),
gevent.spawn(doJob,files['ent'],'ent'),
gevent.spawn(doJob,files['fashion'],'fashion'),
gevent.spawn(doJob,files['life'],'life'),
gevent.spawn(doJob,files['tech'],'tech'),
])

『捌』 selenium可以多線程跑嗎

最近剛剛接觸到RobotFramework,發現這個工具倒是可以滿足我的要求,而且可以結合seleniumLibrary,用來做web的自動化測試相當不錯。之前我也接觸過selenium,不過感覺那個工具更貼近開發人員使用,有了robotFramework之後,感覺這個工具相當強大,而且是貼近測試人員的。之所以說強大,主要是這些測試腳本都可以用文本格式保存(如txt/html等)==安裝篇==如果有想學的朋友可以自己下載以下文件安裝(Google-code里可以找到大部分的安裝文件):這篇文章的內容比較舊了,最新的安裝指南請查看更新篇python-2.7.1.msi(首先要有python,請選擇將Python加入Path)wxPython2.8-win32-unicode-2.8.11.0-py27.exe(wxPython,必須要的)robotframework-2.6.0.win32.exe(然後裝robot的Framework)robotframework-ride-0.38.1.win32.exe(robotFramework的IDE,很不錯)robotframework-seleniumlibrary-2.8.win32.exe(seleniumLibrary)安裝成功後執行[PythonDir]\Scripts\ride.py看到界面就是安裝成功了。如果需要AutoIt支持就下載下面2個東東。AutoItLibrary-1.1pywin32-216.win32-py2.7.exe==入門篇==安裝完成了,這個框架可以說是基於keyword的操作,按F5可以看到所有載入的keyword。首先新增一個project然後新增suite然後新增testcase,接著在suite層級addlibrary,把seleniumlibrary加進來,添加後按F5檢驗是否添加成功,如圖OK,繼續在suite的setting里設置suite啟動和結束的keyword,即StartSeleniumServer和StopSeleniumServer,他會在運行時幫助我們自動啟動seleniumserver。接下來在testcase里添加一個步驟,openbrowser(一般用selenium做web測試都要用這個方法來打開瀏覽器),添加後關鍵字變成藍色表示找到關鍵字了,否則可能是拼寫錯誤或者沒有載入相應的library。紅色表示有一個必選參數要給定輸入值,具體參數可以看F5里的keyword說明。輸入參數,第二個參數默認是firefox,不過我沒裝,就用ie吧。以上只是一個簡單的例子,沒有詳細說明每個步驟的操作,只是初步介紹。後續再詳細介紹

『玖』 selenium python 怎麼進行三個界面切換

#coding=UTF-8
''''''
#coding=UTF-8
fromseleniumimportwebdriver
importtime

driver=webdriver.Firefox()
driver.implicitly_wait(10)
driver.get("")

sreach_windows=driver.current_window_handle

driver.find_element_by_link_text(u'登錄').click()
driver.find_element_by_link_text(u"立即注冊").click()
#獲得當前所有打開的窗口的句柄
all_handles=driver.window_handles
#進入注冊窗口
forhandleinall_handles:
ifhandle!=sreach_windows:
driver.switch_to_window(handle)
print('nowregisterwindow!')
driver.find_element_by_name("phone").send_keys('15143049892')
driver.find_element_by_name("password").send_keys('password')
#回到搜索窗口
forhandleinall_handles:
ifhandle==sreach_windows:
driver.switch_to_window(handle)
print('nosreachwindow!')
driver.find_element_by_id('TANGRAM__PSP_2__closeBtn').click()
driver.find_element_by_id("kw").send_keys("selenium")
driver.find_element_by_id("su").click()
time.sleep(2)

driver.quit()

『拾』 python selenium 需要判斷一個網頁如果10秒內未載入完成,就停止載入,然後自動刷新怎麼做

browser=webdriver.Chrome()#打開瀏覽器
browser.set_page_load_timeout(10)#10秒
whileTrue:
try:
browser.get('你的網址')
break
except:
pass

熱點內容
方舟和輻射4哪個要求配置高 發布:2025-01-09 09:48:14 瀏覽:874
如何遊玩我的世界外國伺服器 發布:2025-01-09 09:21:27 瀏覽:468
烏克蘭編程 發布:2025-01-09 09:16:33 瀏覽:310
python填充0 發布:2025-01-09 09:16:32 瀏覽:364
流通值源碼 發布:2025-01-09 09:05:45 瀏覽:147
什麼是雙套配置保護 發布:2025-01-09 09:04:17 瀏覽:755
聯想電腦忘記開機密碼怎麼辦 發布:2025-01-09 08:59:06 瀏覽:941
微信機器人介面源碼 發布:2025-01-09 08:57:30 瀏覽:669
電腦主要配置參數都有哪些 發布:2025-01-09 08:56:56 瀏覽:858
csgo躲貓貓伺服器怎麼都是沒人的 發布:2025-01-09 08:56:47 瀏覽:485