鱼C论坛

 找回密码
 立即注册
12
返回列表 发新帖

[已解决]python使用selenium中某些链接没法点击

[复制链接]
发表于 2024-2-22 11:26:49 | 显示全部楼层
python小小白哟 发表于 2024-2-22 10:52
还是不行啊  来个人吧   帮忙解决一下  谢谢了

好的,你的完整源代码给一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-2-22 13:40:41 | 显示全部楼层    本楼为最佳答案   
python小小白哟 发表于 2024-2-22 10:52
还是不行啊  来个人吧   帮忙解决一下  谢谢了

这怪不得ai

因为ai没法帮你去测试代码,所以它并不知道查询结果会打开一个新的窗口,你的代码因为没有切换窗口所以找不到查询结果的元素

以下是我帮你修改后的代码:
import time
from selenium import webdriver
from selenium.webdriver.common.by import By

option = webdriver.EdgeOptions()
option.add_experimental_option("detach", True)
option.add_experimental_option("excludeSwitches", ["enable-automation"])
option.add_experimental_option("useAutomationExtension",False)
option.add_argument("User-Agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0")

browser = webdriver.Edge(options=option)
browser.get("https://eproport.crecgec.com/#/home")
time.sleep(2)
browser.find_element(By.XPATH,"/html/body/app-root/layout-fullscreen/div[2]/div/div/nz-input-group/span/input").send_keys("钢")
time.sleep(3)
browser.find_element(By.XPATH,"/html/body/app-root/layout-fullscreen/div[2]/div/div/nz-input-group/span/span/button/span[2]").click()
time.sleep(3)

# 添加的代码 **************************************************************
# 获取当前窗口句柄
current_window = browser.current_window_handle

# 获取所有窗口句柄
all_windows = browser.window_handles

# 切换到新打开的窗口
for window in all_windows:
    if window != current_window:
        browser.switch_to.window(window)
        break
# **********************************************************************************

browser.find_element(By.XPATH,"/html/body/app-root/layout-fullscreen/div[5]/app-nobanner/app-notice-notice/nz-card[2]/div/nz-table/nz-spin/div/div/nz-table-inner-default/div/table/tbody/tr[1]/td[1]/span/a").click()
time.sleep(3)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-2-22 14:46:09 | 显示全部楼层
歌者文明清理员 发表于 2024-2-22 11:26
好的,你的完整源代码给一下

以下就是完整的代码:
import time
from selenium import webdriver
from selenium.webdriver.common.by import By

option = webdriver.EdgeOptions()
option.add_experimental_option("detach", True)
option.add_experimental_option("excludeSwitches", ["enable-automation"])
option.add_experimental_option("useAutomationExtension",False)
option.add_argument("User-Agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0")

browser = webdriver.Edge(options=option)
browser.get("https://eproport.crecgec.com/#/home")
time.sleep(2)
browser.find_element(By.XPATH,"/html/body/app-root/layout-fullscreen/div[2]/div/div/nz-input-group/span/input").send_keys("钢")
time.sleep(3)
browser.find_element(By.XPATH,"/html/body/app-root/layout-fullscreen/div[2]/div/div/nz-input-group/span/span/button/span[2]").click()
time.sleep(3)
browser.find_element(By.XPATH,"/html/body/app-root/layout-fullscreen/div[5]/app-nobanner/app-notice-notice/nz-card[2]/div/nz-table/nz-spin/div/div/nz-table-inner-default/div/table/tbody/tr[1]/td[1]/span/a").click()
time.sleep(3)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-2-22 14:50:26 | 显示全部楼层
isdkz 发表于 2024-2-22 13:40
这怪不得ai

因为ai没法帮你去测试代码,所以它并不知道查询结果会打开一个新的窗口,你的代 ...

你好  确实是可以了,但是我用  click()确实是打开了一个新的页面,并且窗口已经在新的页面了呀。为什么还得切换下页面呢?有点不解。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-2-22 16:12:16 | 显示全部楼层
isdkz 发表于 2024-2-22 13:40
这怪不得ai

因为ai没法帮你去测试代码,所以它并不知道查询结果会打开一个新的窗口,你的代 ...

isdkz大佬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-2-22 17:05:50 | 显示全部楼层
python小小白哟 发表于 2024-2-22 14:50
你好  确实是可以了,但是我用  click()确实是打开了一个新的页面,并且窗口已经在新的页面了呀。为什么 ...

只是浏览器焦点在另一个窗口而已,driver需要你自己切换窗口的,否则还是操作原来的窗口
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-2-22 17:10:30 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-15 02:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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