我正試圖等待網頁完全加載,然后再繼續前進,并找到一些元素。
1.如果我做了
EC.presence_of_element_located((By.XPATH, "//*[包含(text(), 'my text 1234567') ] ")
我將得到
<selenium.webdriver.support. expected_conditions.presence_of_element_located at 0x143304641c0>
這意味著我的文本被找到了,對嗎?
2.但如果我這樣做的話
WebDriverWait(driver, 5).until(EC. presence_of_element_located((By.XPATH, "//*[包含(text(), 'my text 1234567')]"))
我將得到
selenium.common.exceptions.TimeoutException: 訊息。
3.然后我檢查了
driver.find_elements_by_xpath("/*[contains(text(), 'my text 1234567')]"/span>)
Out[55]。[]: [55]
4. 如果我這樣做
driver.page_source.find('my text 1234567' )
Out[64] 。
我很迷惑。為什么會發生這些情況?我應該修改我的By.XPATH嗎?
uj5u.com熱心網友回復:
數字1:這并不回傳一個文本物件,正如這里所說的它只是檢查 "一個元素是否存在于頁面的DOM中。這并不一定意味著該元素是可見的。"
第2項:我相信這給了你一個錯誤,因為它找不到任何東西
。
數字3:你正在使用
find_elementS_by_xpath,(復數)所以它尋找所有元素,但是因為它沒有找到任何元素,所以它回傳一個空串列。數字4:你在一個字串上使用
.find方法,它回傳你的文本在頁面的html文本中的位置(以字符為單位)。
為了獲得進一步的幫助,你能不能分享一下你所使用的url以及你想要提取的元素?
uj5u.com熱心網友回復:
我不確定你想要的結果是什么。如果你只是想回傳文本 "1934年的證券交易法",這是一個選項:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
path = "YOUR PATH HEREchromedriver.exe"/span>
driver = webdriver.Chrome(path)
wait = WebDriverWait(driver, 5)
driver.get("https://www.sec.gov/Archives/edgar/data/896397/000089639701500011/seh10q2qtr2001.htm")
wait.until(EC.presence_of_element_located((By.TAG_NAME, "p"))
paragraph = driver.find_elements_by_tag_name("p") [1].text
line = paragraph.split("
")[3]
結果 = line[60:]
print(result)
相反,如果你想回傳出現 "1934年證券交易法 "的第一段,這是一個選項,遵循與你之前使用的類似的語法:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
path = "YOUR PATH HEREchromedriver.exe"/span>
driver = webdriver.Chrome(path)
wait = WebDriverWait(driver, 5)
driver.get("https://www.sec.gov/Archives/edgar/data/896397/000089639701500011/seh10q2qtr2001.htm")
paragraph = wait.until(EC.presence_of_element_located((By.XPATH, "//p[contains(.,'Securities Exchange Act of 1934')]"/span>))
print(paragraph.text)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/309766.html
標籤:
