【问题标题】:How to perform click using Selenium and C#如何使用 Selenium 和 C# 执行点击
【发布时间】:2019-03-13 12:29:51
【问题描述】:

我有这个 HTML 代码,我想点击按钮:

<div class="col-md-3 col-sm-5">
                <button type="button" class="btn btn-success btn-lg" data-toggle="modal" data-target="#SignInModal" style="width:100%">
                    Sign in            
                </button>
            </div>

这是我尝试过的:

driver.FindElement(By.ClassName("btn-success")).Click();

【问题讨论】:

  • 那么,是否点击了?如果没有,是否有错误或抛出异常?
  • 欢迎来到 StackOverflow。您的代码对我来说看起来不错,但由于时间问题,经常会出现此类问题。例如,页面可能尚未加载或呈现。您可能需要添加等待。详情请见stackoverflow.com/q/6992993/120955。
  • 你只试过一次?您是否对单击该元素的其他方式进行了研究?你试过这些吗?当你尝试这个时发生了什么?当您使用该方法时,您是否遇到异常或什么不起作用?请在您的问题中添加任何错误消息并正确格式化。
  • @Danied 使用 XPath 而不是类名。使用此链接作为参考并了解如何查找定位器。 guru99.com/xpath-selenium.html

标签: c# selenium xpath css-selectors webdriver


【解决方案1】:

要在按钮上调用click(),文本为登录,您可以使用以下任一解决方案:

  • CssSelector:

    driver.FindElement(By.CssSelector("button.btn.btn-success.btn-lg[data-toggle='modal'][data-target$='SignInModal']")).Click();
    
  • XPath:

    driver.FindElement(By.XPath("//button[@class='btn btn-success btn-lg'][normalize-space()='Sign in']")).Click();
    

【讨论】:

  • 您不必使用元素上的每个属性来找到它。其他人多次提到这一点。这样做只会让它变得更脆弱,而不是更好地找到元素。
猜你喜欢
  • 2019-08-26
  • 1970-01-01
  • 2020-09-22
  • 1970-01-01
  • 2019-08-11
  • 1970-01-01
  • 2017-05-23
  • 2019-11-21
  • 2020-07-10
相关资源
最近更新 更多