【问题标题】:Click Function not working in Selenium Driver C#单击功能在 Selenium 驱动程序 C# 中不起作用
【发布时间】:2014-12-07 20:26:29
【问题描述】:

所以我不太明白为什么这不起作用。 (Win Forms Selenium Firefox webdrivers C#)

driver.FindElement(By.ClassName("video")).Click();

html 中有多个带有“video”的 ClassName,所以这可能是问题所在。

这是网站的 HTML 代码

<div class="video">
    <a style="background-image: url(&quot;http://pthumbnails.5min.com/10370971/518548518_c_240_135.jpg&quot;);" href="/watch/psychic-intervention-help-from-baby-amanda-518548518" data-id="518548518">
        <span>'Psychic Intervention': Help From Baby Amanda</span>
    </a>
</div>

HTML 中除视频外的所有内容每次都会更改。请和谢谢:)

【问题讨论】:

    标签: c# html selenium selenium-webdriver


    【解决方案1】:

    如果要打开链接,则 div 不是您要单击的元素。您需要点击 div 内的链接( 元素)。

    如果你不知道链接文本或 URL 是什么,但你知道它在一个带有“video”类的 div 中,你可以通过它的 xpath 找到元素,通过查找第一个 带有视频类的 div 之后的标记。

    driver.FindElement(By.XPath("//div[@class='video']/a")).Click();
    

    FindElement 也总是会选择 DOM 中与条件匹配的第一个元素,如果您只想点击任何视频链接,这很好。

    但是,如果有多个具有 元素的视频类的 div,并且您想单击特定的视频链接,则可能需要使用 driver.FindElements获取所有视频链接,比较信息,然后单击所需的链接。

    【讨论】:

      【解决方案2】:

      由于 "video" 有多个类名,因此您需要隔离 xpath 以使其指向相关元素。

      以下是方法:

      1-通过使用带有视频类名的div和span标签内的innerHTML/text(假设总共只有1个这样的innerHTML/text实例页):

      driver.FindElement(By.XPath("//div[@class='video']//span[contains(text(),'Help From Baby Amanda ')]")).Click();
      

      2-通过使用'a'标签的唯一属性'data-id'(假设data-id实际上是UNIQUE):

      driver.FindElement(By.XPath("//a[@data-id='518548518']")).Click();
      

      3-通过使用'a'标签和span标签的innerHTML/text(假设整个页面只有1个这样的innerHTML/text实例):

      driver.FindElement(By.XPath("//a/span[contains(text(),'Help From Baby Amanda ')]")).Click();
      

      4-仅使用span标签的innerHTML/text(假设整个页面中只有1个这样的innerHTML/text实例):

      driver.FindElement(By.XPath("//span[contains(text(),'Help From Baby Amanda')]")).Click();
      

      注意:- 有多种方法可以做到这一点。以上是我能想到的方法,基于给出的HTML代码sn-p。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-04-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多