这应该很容易...假设我有一个由类名选择的元素列表。
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_driver = os.getcwd() + "/chromedriver"
driver = webdriver.Chrome(chrome_options=chrome_options, executable_path=chrome_driver)
driver.get("https://www.example.com")
users = driver.find_elements_by_class_name("userName")
for user in users:
print(user.text)
tips = driver.find_elements_by_class_name("tipText")
for tip in tips:
print(tip.text)
如果我打印出users
和tips
,我会得到一个元素列表。
[<selenium.webdriver.remote.webelement.WebElement (session="725826f32ff35a12c0e8760512aeb5b7", element="0.9805135317784113-4")>,...]
[<selenium.webdriver.remote.webelement.WebElement (session="725826f32ff35a12c0e8760512aeb5b7", element="0.9805135317784113-20")>,...]
但是,如果我想将该元素列表转换为文本而不循环并附加到另一个列表怎么办?有什么简单的方法可以做到这一点吗?
另外,如果你不能...为什么你不能不从列表中提取它并将其写入另一个列表?
我尝试了users.text
和tips.text
以及一堆变体,但没有成功。这似乎很容易做到。
谢谢!
不确定这是否算数...
users=[e.text for e in users]
tips=[e.text for e in tips]
但这应该...
for c,e in enumerate(users):
users[c]=e.text
for c,e in enumerate(tips):
tips[c]=e.text
但是,如果我想将该元素列表转换为文本而不循环并附加到另一个列表怎么办?有什么简单的方法可以做到这一点吗?
它确实循环,但不会附加到另一个列表。它只是将它们改变到位。