硒无法通过XPath定位元素

时间:2018-11-09 00:09:33

标签: selenium selenium-webdriver xpath webdriverwait

我正在尝试将Xpath与Selenium一起使用来定位元素。

有问题的元素是YouTube页面上的频道名称:https://www.youtube.com/watch?v=FSyAehMdpyI&list=PL8dPuuaLjXtPHzzYuWy6fYEaX9mQQ8oGr

我的xpath是:

12

在YouTube页面的开发者工具栏中,我能够通过输入Xpath找到该元素。但是,当我尝试在Python脚本中找到它时,操作会超时。

{...}

任何想法为何?

2 个答案:

答案 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")