很基本的問題。我沒有python方面的知識,我試圖讓一個基本的selenium工具運行,它的作用如下:
打開網頁,如果有的話,點擊某個元素/鏈接。
打開一個網頁,如果有的話,點擊某個元素/鏈接。如果該元素不存在/不可用,則重繪 頁面并再次嘗試,直到該元素可被點擊,再次嘗試,直到成功為止。
背景。我需要盡快加入一個課程,該課程在一個特定的日期/時間內可用。
到目前為止,我得到了什么:
我得到了什么?
from selenium import webdriver
PATH = "C:Program Files (x86)chromedriver.exe"/span>
driver = webdriver.Chrome(PATH)
driver.get("URL")
link = driver.find_element_by_link_text("Join")
link.click()
當元素被找到時,它成功地點擊了鏈接,如果沒有,它將產生selenium.common.exceptions.NoSuchElementException: 訊息:沒有這樣的元素。無法定位元素:錯誤,肯定是因為它沒有找到要求的元素。
如何讓腳本在回圈中重復find.element,并重繪 頁面,直到該元素在特定的日期/時間顯示出來。
非常感謝你。
uj5u.com熱心網友回復:
我想你可以在Python中使用 "try "和 "except "來處理例外而不退出
from selenium.common.exceptions import NoSuchElementException
from selenium import webdriver
from time import sleep
driver = webdriver.Chrome()
while True:
try:
driver.get("URL")
link = driver.find_element_by_link_text("Join")
link.click()
except NoSuchElementException。
print("Element Not Found")
sleep(0.5)
下面是關于Python中的例外的更多資訊:
https://docs.python.org/3/tutorial/errors.html希望這對你有幫助!
uj5u.com熱心網友回復:
你的另一個答案永遠不會從無限回圈中出來。而且它也不會在沒有找到元素的情況下重繪 。
代碼 :
while True :
try:
if len(driver.find_elements_by_link_text("Join"/span>)) > 0:
driver.find_element_by_link_text("Join").click()
print("成功點擊加入鏈接")
break(span class="hljs-string">"成功點擊加入鏈接")
else:
driver.refresh() # refresh the web page.
time.sleep(5) # 5 sec break.
except:
print(' Something went wrong')
break('Something went wrong')
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/318356.html
標籤:
