1
我有一個非常令人沮喪的時間試圖找出發生了什麼。我的代碼上週工作,但無論如何,我沒有得到任何結果。在網站上搜索css選擇器「h3.one」時,我收到了超時消息。我的代碼應該找到所有與該CSS選擇器和這些元素的元素,返回diplayed。Selenium Extraction ...需要提取位於CSS選擇器的元素文本
我需要幫助特別是隱性等待
這裏是我的代碼:
browser = webdriver.Firefox()
browser.get('https://www.voilanorbert.com/')
inputElement = browser.find_element_by_id("form-search-name")
inputElement.send_keys(leadslist[i][0])
inputElement = browser.find_element_by_id("form-search-domain")
inputElement.send_keys(leadslist[i][1])
searchbutton = browser.find_element_by_name("search")
searchbutton.click()
wait = WebDriverWait(browser, 20)
wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "h3.one")))
h3s = browser.find_elements_by_css_selector('h3.one')
h3 = next(element for element in h3s if element.is_displayed())
result = h3.text
print (result)
打印只是爲宗旨,以查看正在提取什麼/確保它實際上是做需要的事情。
如果其看不見的,爲什麼會搞砸了嗎?上面的代碼不只是用class =「one」尋找可見的h3元素嗎? – ohbrobig 2015-03-30 18:43:18
我不能讓選擇器特定於「成功」容器,因爲結果並不總是「成功」......你看它可能是「結果 - 錯誤h3.one」,「結果 - 失敗h3.one」 ,「結果catchall h3.one」或「結果成功h3.one」 – ohbrobig 2015-03-30 18:46:41
@ohbrobig瞭解,謝謝。更新了答案。 – alecxe 2015-03-30 18:56:42