选择具有相同CSS类的4个按钮

时间:2014-07-14 11:24:33

标签: c# css selenium

然后我试试这个,它运行正常:

 driver.FindElement(By.CssSelector(".follow-text")).Click();

但只有第一个运行正常,我如何选择具有相同css的第二个按钮" .follow-text"?

添加数字[2]对我不起作用:

        driver.FindElement(By.CssSelector(".follow-text")).Click();
        driver.FindElement(By.CssSelector(".follow-text[2]")).Click();

任何帮助都是精彩的

1 个答案:

答案 0 :(得分:1)

您的XPATH非常依赖于类的顺序。某些框架可能会将一个类放在另一个类之前,并在每次页面呈现时更改它。看看你的一个xpath选择器。

//button[@class='user-actions-follow-button js-follow-btn follow-button btn small small-follow-btn']

匹配:

<button class="user-actions-follow-button js-follow-btn follow-button btn small small-follow-btn">

如果输出为?:

<button class="user-actions-follow-button btn small follow-button small-follow-btn">

现在你的选择器完全无用,因为它严重依赖于单词顺序。如果您使用CSS,则可以使用.

By.CssSelector("button.user-actions-follow-btn.btn.small.follow-button.small-follow-btn")

这个选择器不关心类所在的顺序,只要它按某种顺序包含所有类。

如果您需要更多相关信息,请查看this page,这可能有助于为Selenium制定有效的CSS选择器