我正在尝试将Xpath与Selenium一起使用来定位元素。
有问题的元素是YouTube页面上的频道名称:https://www.youtube.com/watch?v=FSyAehMdpyI&list=PL8dPuuaLjXtPHzzYuWy6fYEaX9mQQ8oGr
我的xpath是:
12
在YouTube页面的开发者工具栏中,我能够通过输入Xpath找到该元素。但是,当我尝试在Python脚本中找到它时,操作会超时。
{...}
任何想法为何?
答案 0 :(得分:3)
尝试这个,
相对路径-//yt-formatted-string[@id='owner-name']//a[contains(text(),'CrashCourse')]
它为我工作,希望对您有帮助!
答案 1 :(得分:0)
您可以使用更简单的 relative xpath 通过 visibility_of_element_located()
方法提取频道名称,并且可以使用以下任一方法以下解决方案:
使用text
:
channel_name = self.wait.until(EC.visibility_of_element_located((By.XPATH,"//div[@id='owner-container']/yt-formatted-string[@id='owner-name']/a"))).text
使用get_attribute()
:
channel_name = self.wait.until(EC.visibility_of_element_located((By.XPATH,"//div[@id='owner-container']/yt-formatted-string[@id='owner-name']/a"))).get_attribute("innerHTML")