selenium自动化测试-坑记录

本文通过网易音乐网页版的具体示例,展示了如何使用Selenium在不同Frame间进行切换,并找到指定元素的过程。介绍了Java与Python两种语言的实现方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

找不到定位

没有切换到对应的页面(frame)里面。
使用案例:网易音乐(https://music.163.com/

  • 错误信息:

org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {“method”:“xpath”,“selector”:“//*[@id=“singer-cat-nav”]/div[1]/ul/li[2]/a”}

Java

1、代码重点语句:

	driver.switchTo().frame("contentFrame");

2、案例展示:

		driver.get("https://music.163.com/");
    	driver.manage().window().maximize();
    	driver.manage().timeouts().implicitlyWait(8, TimeUnit.SECONDS);
    	//1. 打开 网易云音乐 首页,点击“歌手”
    	driver.findElement(By.xpath("//*[@id=\"g_nav2\"]/div/ul/li[5]/a/em")).click();
    	//2. 在左边华语框中选择“华语女歌手”
    	driver.switchTo().frame("contentFrame");
    	driver.findElement(By.xpath("//*[@id=\"singer-cat-nav\"]/div[1]/ul/li[2]/a")).click();

注:contentFrame根据当前页面frame的name或id所对应。(F12查看)

Python

1、代码重点语句:

driver.switch_to.frame("contentFrame")

2、案例使用展示:

from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get("https://music.163.com/")
# 1. 打开 网易云音乐 首页,点击“歌手”
driver.find_element_by_xpath("//*[@id=\"g_nav2\"]/div/ul/li[5]/a/em").click()
time.sleep(1)
# 在左边华语框中选择“华语女歌手”
driver.switch_to.frame("contentFrame")
driver.find_element_by_xpath("/html/body/div[3]/div[1]/div/div[1]/ul/li[2]/a").click()

注:同上理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值