无法通过Selenium在我的Excel工作簿上打印href

fail to print href on my excel workbook by selenium

提问人:Chau 提问时间:8/18/2023 最后编辑:Chau 更新时间:8/18/2023 访问量:17

问:

我无法在 Excel 工作簿上打印 href 我的代码看起来没问题,当在我的 Excel 工作簿上打印标题和日期时,它可以工作, 但是 href 列就是不起作用, 请帮帮我,谢谢。

# Intel newsroom
driver.get('https://www.intel.com/content/www/us/en/newsroom/home.html#gs.4bhcva')
sleep(2)

workbook = openpyxl.load_workbook('test.xlsx')
sheet = workbook['test']
mxR = sheet.max_row
nowrow = mxR + 1  # Start from the next row after existing data
eles = driver.find_elements(By.CLASS_NAME, 'content-headline')
for ele in eles[:3]:  # Print the first 3 elements
    title = ele.find_element(By.CLASS_NAME, 'title').text
    href = ele.find_element(By.CLASS_NAME, 'title').get_attribute('href')
    date = ele.find_element(By.CLASS_NAME, 'article-date').text
    
    sheet.cell(row=nowrow, column=1).value = 'Intel newsroom'
    sheet.cell(row=nowrow, column=2).value = title
    sheet.cell(row=nowrow, column=3).value = href
    sheet.cell(row=nowrow, column=4).value = date
    nowrow += 1  # Move to the next row

workbook.save('test.xlsx')

driver.quit()
python-2.7 selenium-web驱动程序

评论


答:

0赞 Shawn 8/18/2023 #1

根本原因:属性位于节点上。但是您下面的代码行是定位节点。href<a><h3>

href = ele.find_element(By.CLASS_NAME, 'title').get_attribute('href')

溶液:将上面的行更改为:

href = ele.find_element(By.XPATH, "//*[@class='title']//a").get_attribute('href')