Selenium C#如何暂停/播放嵌入式YouTube视频

时间:2017-01-01 12:30:14

标签: c# selenium testing youtube automated-tests

所以我有这个测试用例,我打开一个youtube链接,用youtube视频打开一个框架(嵌入式) enter image description here

我想用Selenium播放/暂停视频。我得到一个关于没有这样的元素的错误。一切都在我没有youtube视频的地方有效。 这是代码:

    public void PlayMovies()
    {
        driver.FindElement(By.CssSelector("span.movie"), TimeoutToFindElement).Click();
        driver.FindElement(By.CssSelector("li > a.youtubevideo"), TimeoutToFindElement).Click();
        driver.SwitchTo().ActiveElement();


        //driver.FindElement(By.ClassName(".ytp-play-button"), TimeoutToFindElement).Click();
        //driver.FindElement(By.XPath("//div[2]/div/button"), TimeoutToFindElement).Click();
        //driver.FindElement(By.XPath("//*[starts-with(@id,'player_uid')]/div[22]/div[2]/div[1]/button"), TimeoutToFindElement);
        //driver.FindElement(By.CssSelector("button.ytp-play-button.ytp-button"), TimeoutToFindElement).Click();


        driver.FindElement(By.XPath("//div[@id='youtube-modal-container']/div/div/button"), TimeoutToFindElement).Click();
    }

这些注释行都没有起作用。另外我不知道SwitchTo是否有一些效果,因为我得到了相同的错误或没有。

1 个答案:

答案 0 :(得分:1)

可能是,您的视频位于iFrame所以首先您需要切换到iFrame -

driver.switchTo().frame(0); // 0 represent frame index

然后必须模拟你的行动