我试图从网站<span class="auto-link">yes</span>
上的评论中复制文字,而我的python代码是
element=browser.find_elements_by_xpath('//span[@class="auto-link"][1]')
print(element.text)
但我继续获取&#39;列表&#39;对象没有属性&#39; text&#39;错误,我不知道我做错了什么。
答案 0 :(得分:0)
我从未使用过Selenium,但根据错误和您的回答,答案非常明确。
当您搜索某个类时,可能会有多个匹配元素,因此它会返回所有找到的匹配项的列表。即使您只有一个具有该类的元素,它仍将返回一个列表以保持一致性。
抓住找到的元素中的第一个元素:
elements = browser.find_elements_by_xpath('//span[@class="auto-link"][1]')
# ^ Renamed to reflect type better
print(elements[0].text)
# ^ Grab the first element
答案 1 :(得分:0)
我在python中使用硒。尝试使用此代码,希望对您有用。
element=browser.find_elements_by_xpath('//span[@class="auto-link"][1]')
for value in element:
print(value.text)
答案 2 :(得分:0)
当您要查找多个元素并采用与xpath匹配的第一个元素时,这将起作用:
element=browser.find_elements_by_xpath('//span[@class="auto-link"][1]').getAttribute("innerHTML")
print(element)
这是当您只寻找一个时:
element=browser.find_element_by_xpath('//span[@class="auto-link"]').getAttribute("innerHTML")
print(element)
输出:
>>>yes
答案 3 :(得分:0)
首先写出您当前正在使用的span的xpath,然后将索引号添加到xpath的最后一个,但在其中,如下所示。
from selenium import webdriver`
driver = webdriver.Firefox()
driver.get("http://www.example.org")
element=browser.find_elements_by_xpath('//span[@class="auto-link"[1]').click()
print(element)
[1]是我要访问的值的索引号。
答案 4 :(得分:0)
# instead of driver.find_elements_by_xpath() use driver.find_element_by_xpath() to get the individual element of the table
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
import time
# Google Chrome
driver = webdriver.Chrome(ChromeDriverManager().install())
driver.get("https://testautomationpractice.blogspot.com/")
# Get Number of Rows
rows = len(driver.find_elements_by_xpath("//*[@id='HTML1']/div[1]/table/tbody/tr"))
# Get Number of Columns
columns = len(driver.find_elements_by_xpath("//*[@id='HTML1']/div[1]/table/tbody/tr[1]/th"))
print("Number of Rows:", rows)
print("Number of Columns:", columns)
# In web table index starts with 1 instead of 0
for row in range(2, rows+1):
for col in range(1,columns+1):
value = driver.find_element_by_xpath("//*[@id='HTML1']/div[1]/table/tbody/tr["+str(row)+"]/td["+str(col)+"]").text
print(value, end=' ')
print()
time.sleep(5)
# Close the Browser
driver.close()
答案 5 :(得分:0)
不要使用find_elements_by_xpath
,而是使用find_element_by_xpath