鱼C论坛

 找回密码
 立即注册
查看: 2892|回复: 13

python中如何使用selenium点击图片或者文字超链接呢?

[复制链接]
发表于 2024-2-10 11:51:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
python中如何使用selenium点击图片或者文字超链接呢?
如题。这个问题已经困扰本菜菜好几天了,一直没有解决。

本帖被以下淘专辑推荐:

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2024-2-10 18:23:50 | 显示全部楼层
FishC 发表于 2024-2-10 11:52
要使用Selenium点击图片或者文字超链接,首先需要引入相关的库和类。接下来,可以使用以下两种方法来实现: ...

用By.CSS_SELECTOR怎么写元素的位置呢?格式是什么?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-2-11 08:55:08 | 显示全部楼层
FishC 发表于 2024-2-10 18:24
使用 By.CSS_SELECTOR 定位元素时,需要指定元素的 CSS 选择器。CSS 选择器是一种用于选择 HTML 元素的 ...
  1. <img src="https://bkimg.cdn.bcebos.com/pic/622762d0f703918fc5d9ce5a523d269759eec412?x-bce-process=image/format,f_auto/resize,m_lfit,limit_1,h_720" class="picture_z1AvY" width="640" height="360">
复制代码

以上是HTML标签,请问如何选中这个图片链接然后打开呢?

  1. browser.find_element(By.CSS_SELECTOR,"img[src='https://bkimg.cdn.bcebos.com/pic/622762d0f703918fc…s=image/format,f_auto/resize,m_lfit,limit_1,h_720']").click()
复制代码


以上代码就报错了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-2-11 09:01:47 | 显示全部楼层
FishC 发表于 2024-2-11 08:55
抱歉,之前提到的代码确实有误。对于图片链接,不能直接通过 `click()` 方法来模拟点击操作。图片链接 ...
  1. link = browser.find_element(By.CSS_SELECTOR,"a img")
  2. link_parent = link.find_element(By.XPATH,"//*[@id="J-lemma-main-wrapper"]/div[2]/div/div[1]/div/div[8]/div[3]/div/a")
  3. link_parent.click()
复制代码


以上代码报错了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-2-11 09:12:37 | 显示全部楼层
FishC 发表于 2024-2-11 09:01
抱歉,之前给出的示例代码有一些错误。正确的做法是使用 `find_element` 方法来找到包含图片的父级元素 ...

算了贴出来全部代码。
代码如下:

  1. from selenium import webdriver
  2. from selenium.webdriver.common.by import By
  3. import time

  4. browser = webdriver.Edge()
  5. browser.get("https://www.baidu.com/")
  6. browser.find_element(By.ID,"kw").send_keys("战地3")
  7. time.sleep(2)
  8. browser.find_element(By.ID,"su").click()
  9. time.sleep(2)
  10. browser.find_element(By.CLASS_NAME,"_no-spacing_lzhxo_29").click()
  11. get_windows = browser.window_handles
  12. time.sleep(2)
  13. browser.switch_to.window(get_windows[0])
  14. time.sleep(2)
  15. browser.switch_to.window(get_windows[-1])
  16. time.sleep(2)
  17. link = browser.find_element(By.CSS_SELECTOR,"a img")
  18. link_parent = link.find_element(By.XPATH,"/html/body/div[1]/div/div[2]/div[2]/div/div[1]/div/div[8]/div[3]/div/a")
  19. link_parent.click()
  20. time.sleep(2)
复制代码


就是打开一个百度百科然后点击一下图片的超链接。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-2-11 09:16:03 | 显示全部楼层
FishC 发表于 2024-2-11 09:12
你的代码有一些小错误,这里给你修正一下:from selenium import webdriver
from selenium.webdriver. ...

代码还是报错了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-2-11 09:17:17 | 显示全部楼层
本帖最后由 python小小白哟 于 2024-2-11 09:19 编辑
FishC 发表于 2024-2-11 09:16
非常抱歉,之前的代码有一些错误。以下是经过修正的代码:from selenium import webdriverfrom seleniu ...



                               
登录/注册后可看大图


就是点击这个图片超链接。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-10-1 02:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表