找不到定位
没有切换到对应的页面(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()
注:同上理