我在页面上有一堆代码如下:
<div class="user">
<span class="versus"></span>
<a href="/users/USERNAME" target="_blank"></a>
</div>
我想获得所有USERNAME的列表。
我尝试使用
driver.find_element_by_partial_link_text("users")
以及
(driver.find_elements_by_css_selector("div.user > a > span")
但我仍然遇到问题。
任何帮助都将不胜感激。
(另外,我是Python的新手 - 如何循环我的结果,例如打印它找到的所有用户名?)
答案 0 :(得分:0)
下面的代码应该可以正常工作:
driver.find_elements_by_xpath("//div[@class='user']/a")
OR
driver.find_elements_by_css_selector("div.user > a")
答案 1 :(得分:0)
要扩展上述答案以获取用户名:
users = driver.find_elements_by_css_selector("div.user > a")
for user in users:
username = user.get_attribute("href").replace("/users/", "")
print(username)
答案 2 :(得分:0)
这些怎么样?
href exact equals:
driver.find_elements_by_css_selector("div.user > a[href='/users/USERNAME']")
href包含:
driver.find_elements_by_css_selector("div.user > a[href*='users']")
href以:
开头driver.find_elements_by_css_selector("div.user > a[href^='/users/']")
href结束于:
driver.find_elements_by_css_selector("div.user > a[href$='/USERNAME']")
如果用户名在某段html中,则可以使用element.get_attribute('href')
如果我提出您的问题,这应该有用:
users = [ elem.get_attribute('href').strip('/users/') for elem in driver.find_elements_by_css_selector("div.user > a[href^='/users/']") ]