python - 如何使用 XPath 打印 href/URL?
问题描述
我的代码导航到一个网站,并且在该网站中有一篇包含其自己的链接/url/href 的文章。
我想打印这个字段。
我当前的代码突出显示了它所在的容器,然后我尝试执行一个 for 循环来获取 href。
from selenium import webdriver
driver = webdriver.Chrome()
import time
url = 'https://library.ehaweb.org/eha/#!*menu=6*browseby=8*sortby=2*media=3*ce_id=2035*label=21986*ot_id=25553*marker=1283*featured=17286'
driver.get(url)
time.sleep(3)
page_source = driver.page_source
container=driver.find_element_by_xpath("//div[@class='list-box col-md-6 col-lg-6 col-xl-4 test']")
for j in container:
link= j.find_element_by_css_selector('a').get_attribute('href')
print(link)
解决方案
If I correctly understand what you want, you just need to print element's child (a) attribute:
link = driver.find_element_by_xpath("//div[@class='list-box col-md-6 col-lg-6 col-xl-4 test']/a").get_attribute("href")
print(link)
This prints:
If you want to use loop, then change container=driver.find_element_by_xpath("//div[@class='list-box col-md-6 col-lg-6 col-xl-4 test']")
to
container=driver.find_elements_by_xpath("//div[@class='list-box col-md-6 col-lg-6 col-xl-4 test']")
For exactly this element the following locator would be enough:
//div[contains(@class, 'test')]/a
With the following code:
driver = webdriver.Chrome(executable_path='/snap/bin/chromium.chromedriver')
url = 'https://library.ehaweb.org/eha/#!*menu=6*browseby=8*sortby=2*media=3*ce_id=2035*label=21986*ot_id=25553*marker=1283*featured=17286'
driver.get(url)
driver.implicitly_wait(10)
container = driver.find_elements_by_xpath("//div[contains(@class, 'test')]")
for j in container:
link = j.find_element_by_css_selector('a').get_attribute('href')
print(link)
driver.close()
推荐阅读
- javascript - 选择框中的jquery“清除”值
- python - Snowflake:Sqlalchemy ORM 更新变体字段
- asp.net - 在 ASPX 中为默认按钮按 Enter 不起作用,但在 IIS 6.2 上鼠标可以
- c - 下图中的内存地址和指针地址是什么?
- c++ - C ++中的递归问题
- tensorflow - TFX 抱怨上游组件未在交互模式下运行
- python - 在 Matplotlib 中,有没有办法为轴混合浮点和整数值?
- python - 卡在数独解决程序中..无法找出我的错误
- c - 最小值和最大值不正确
- rundeck - 如何在位于 DMZ 的节点列表上捕获脚本的结果,但在 Rundeck 服务器上使用该数据?