当放置在代码中时,用于定位按钮元素的定位器不起作用,但在Chrome内部搜索中有效

时间:2018-11-15 11:30:36

标签: c# selenium xpath css-selectors webdriverwait

https://www.dell.com/en-us/cart?cs=19&~ck=mn

如果我们没有活动的购物车项目,请在搜索栏中搜索“笔记本电脑”,然后向其中添加一个购物车项目。单击“转到购物车”,现在它将进入购物车页面。结帐按钮将列在“购物车摘要”下的位置。我希望您找到该Checkout按钮。请帮助我定位它。

当我尝试使用Xpath进行定位时,它可以在ChromSearch选项卡中使用,但是当我将其放置在C#代码中并尝试引发异常时。

(//*[text()='Checkout'])[1]

(//button[@ng-class='continueDellMetricsClass'][text()='Checkout'])[1]

请与我分享定位器,以使用C#在购物车中找到Checkout按钮

1 个答案:

答案 0 :(得分:0)

所需的元素是onWindowFocusChanged元素,因此您必须为所需的 ElementToBeClickable 诱导 WebDriverWait ,并且可以使用以下任何{{3} }作为解决方案:

  • CssSelector

    new WebDriverWait(driver, TimeSpan.FromSeconds(20)).Until(ExpectedConditions.ElementToBeClickable(By.CssSelector("aside.visible-md.visible-lg button.continueButton"))).Click();
    
  • XPath

    new WebDriverWait(driver, TimeSpan.FromSeconds(20)).Until(ExpectedConditions.ElementToBeClickable(By.XPath("//aside[@class='visible-md visible-lg col-md-4 clearfix ng-scope']//button[@class='btn btn-success btn-block continueButton']"))).Click();