如何仅使用基于类名的chrome驱动程序选择按钮?

时间:2017-04-22 19:34:34

标签: c# selenium web

我正在使用Selenium Chrome驱动程序/ C#来选择网站上的按钮。它们没有id标签,只有class标签。如何选择这些类型的按钮。

如果我有Id,通常我会这样做。

 var _SignInButton = driver.FindElement(By.Id("SignInButton"));
_SignInButton.Click();

这些按钮类名称的示例是

class="button-71444407 blue-3811567280"

2 个答案:

答案 0 :(得分:1)

var _SignInButton =
  driver.FindElement(By.CssSelector(".button-71444407.blue-3811567280"));

另见Selenium文档 http://www.seleniumhq.org/docs/

修改

driver.FindElement(By.CssSelector("button.button-71444407.blue-3811567280"));

应找到类值为button-71444407blue-3811567280

的所有按钮
driver.FindElement(By.XPath("//button[@class='button-71444407 blue-3811567280']"));

应该准确找到该按钮和所有其他类值button-71444407 blue-3811567280的按钮(值的顺序很重要)

driver.FindElement(
  By.XPath("//button[contains(@class, 'button-71444407 blue-3811567280')]"));

应该找到该按钮以及包含button-71444407 blue-3811567280类值的所有其他按钮(值的顺序很重要)

答案 1 :(得分:0)

选择与班级名称完全相同的内容:

ChromeDriver.FindElement(By.XPath("//button[@class = 'button-71444407 blue-3811567280']"));

包含在:

中的所有名称
ChromeDriver.FindElement(.XPath("//button[contains(@class, 'button-71444407 blue-3811567280')]"));