我正在嘗試獲取我添加到硒串列中的值并將它們列印出來。但我只得到這個:<generator object at 0x000001B924EC7990>。我如何列印串列中的值。
我還嘗試使用 "//tr[@class= 'text3'][11]/td" 縮短 xpath,但它沒有用。
就像您看到的那樣,我嘗試遍歷串列并將其轉換為文本,但它也不起作用。
這個作業范圍(driver.find_elements(By.XPATH,"//table[2]/tbody/tr/td[2]/table[1]/tbody/tr/td[3]/table/tbody/tr[ 2]/td[位置() >= 最后()]"))?
你們能幫幫我嗎?
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.implicitly_wait(10)
website = "https://langerball.de/"
driver.get(website)
for i in range(7):
xpath_test = "//table[2]/tbody/tr/td[2]/table[1]/tbody/tr/td[3]/table/tbody/tr[2]/td[position() >= last()]"
a = driver.find_elements(By.XPATH, xpath_test)
test_li = []
test_li.append(a)
print(b.text for b in test_li)
uj5u.com熱心網友回復:
driver.find_elements方法在您查找其文本值時回傳一個 Web 元素串列。.text可以通過在 Web 元素上應用該方法來接收 Web 元素文本值。
因此,您應該遍歷接收到的 Web 元素串列并從串列中的每個 Web 元素中提取文本。
也test_li = []應該在回圈之外定義。
所以你的代碼可能是這樣的:
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.implicitly_wait(10)
website = "https://langerball.de/"
driver.get(website)
test_li = []
for i in range(7):
xpath_test = "//table[2]/tbody/tr/td[2]/table[1]/tbody/tr/td[3]/table/tbody/tr[2]/td[position() >= last()]"
a_list = driver.find_elements(By.XPATH, xpath_test)
for a in a_list:
test_li.append(a.text)
print(b.text for b in test_li)
PS
我不確定你的其余代碼:for i in range(7)回圈和xpath_testXPath 運算式
uj5u.com熱心網友回復:
這有效
test_li = []
xpath_test = "//table[2]/tbody/tr/td[2]/table[1]/tbody/tr/td[3]/table/tbody/tr[2]/td[position() <= last()]"
a_list = driver.find_elements(By.XPATH, xpath_test)
for a in a_list:
test_li.append(a.text)
print(test_li)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/420603.html
標籤:
