关于selenium元素找不到的问题(Unable to locate element: {“method“:“xpath“,“selector“:“)

之前一个任务让用selenium爬取制定网站的一些数据,写了代码,在本机上写完后,移植到服务器上,然后在服务器上跑了两次发现,元素找不到了
Unable to locate element: {"method":"xpath","selector":"

然后由于服务器没有图形化界面,不能一步一步的调试,后来使用

python 复制代码
driver.get("https://www.baidu.com/")
# 等待页面加载
time.sleep(10)
html = driver.page_source

# 将页面源代码写入到本地文件
with open("百度.html", "w", encoding="utf-8") as file:
    file.write(html)

将界面下载下来,发现,呕吼,IP被封了,被封了,封了,了......

然后换了台服务器,然后为了防止再次被封,加入了

python 复制代码
options.add_argument(f"x-user-uuid={uuid.uuid4()}")
# 添加随机User-Agent,模拟不同的浏览器和设备,减少被网站识别为爬虫
user_agent = ua.random
options.add_argument(f'--user-agent={user_agent}')

然后,运行了一次,完美解决!(其实是又产生了新的问题QAQ)

过了两周,查看日志发现,裂开了,又不好使了,然后,我重新运行了一遍,想找找问题,结果他又好使了。我真的裂开,裂开了啊,再然后下载页面,发现他会出现两种页面,并且页面源代码完全不同??????怀疑人生

后来花了好久好久的时间,终于找到了问题,问题就出在:

python 复制代码
# 添加随机User-Agent,模拟不同的浏览器和设备,减少被网站识别为爬虫
user_agent = ua.random
options.add_argument(f'--user-agent={user_agent}')

他会随机模拟出手机标识,即让网站发送手机浏览器适应的页面

所以最终解决办法,修改这段代码:

python 复制代码
ua = UserAgent()

# 定义一个函数来生成随机的桌面 User-Agent
def get_random_desktop_user_agent():
    desktop_browsers = ['Chrome', 'Firefox', 'Edge', 'Safari']
    browser = random.choice(desktop_browsers)
    return ua[browser]

# 生成随机的桌面 User-Agent
user_agent = get_random_desktop_user_agent()
options.add_argument(f'--user-agent={user_agent}')
相关推荐
程序员小远15 小时前
自动化测试基础知识总结
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
LT101579744419 小时前
2026年Web自动化测试工具选型指南:多浏览器兼容解决方案
前端·测试工具·自动化
程序员三藏1 天前
Web自动化测试详解
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
深蓝电商API1 天前
Selenium 5.0 全新架构解析:值得升级吗?
爬虫·selenium
专业机床数据采集2 天前
基于 Wireshark 抓包逆向设备通信协议,并用 C# UDP协议跨平台 实现宝元数控程序列表读取、上传、下载和删除
网络·测试工具·wireshark·程序传输·宝元数控·dnc·数控程序传输
程序员龙叔2 天前
从 0 开始学习 AI 测试 - 从接口测试来教你如何用 AI 来生成自动化测试代码
自动化测试·软件测试·python·软件测试工程师·测试工具·性能测试·ai测试
Saniffer_SH2 天前
【高清视频】Gen6 服务器还没到,Gen6 SSD 怎么测?Emily 现场演示三种测试环境
人工智能·驱动开发·测试工具·缓存·fpga开发·计算机外设·压力测试
川石课堂软件测试2 天前
APP自动化测试|高级手势操作&toast操作
css·功能测试·测试工具·microsoft·fiddler·单元测试·harmonyos
LT10157974442 天前
2026年开源自动化测试工具选型指南:功能与适用场景解析
测试工具·开源·自动化