用于定位按钮元素的定位器在代码中不起作用,但在 Chrome 内部搜索中有效
Locator for locating button element does not work when placed in the code but it works in Chrome internal search
https://www.dell.com/en-us/cart?cs=19&~ck=mn
如果我们没有活动的购物车商品,请在搜索栏中搜索 "Laptops ",然后将一个购物车商品添加到其中。点击“转到购物车”,现在它将进入购物车页面。结帐按钮将列在 "Cart Summary" 下。我想让你找到结帐按钮。请帮我找到它。
当我尝试使用下面的 Xpath 定位时,它在 ChromSearch 选项卡中工作,但是当我放入 C# 代码并尝试它时,它会抛出异常。
(//*[text()='Checkout'])[1]
或
(//button[@ng-class='continueDellMetricsClass'][text()='Checkout'])[1]
请与我分享使用 C#
在购物车中定位 Checkout
按钮的定位器
所需的元素是 Angular element so you have to induce WebDriverWait for the desired ElementToBeClickable and you can use either of the following 作为解决方案:
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();
https://www.dell.com/en-us/cart?cs=19&~ck=mn
如果我们没有活动的购物车商品,请在搜索栏中搜索 "Laptops ",然后将一个购物车商品添加到其中。点击“转到购物车”,现在它将进入购物车页面。结帐按钮将列在 "Cart Summary" 下。我想让你找到结帐按钮。请帮我找到它。
当我尝试使用下面的 Xpath 定位时,它在 ChromSearch 选项卡中工作,但是当我放入 C# 代码并尝试它时,它会抛出异常。
(//*[text()='Checkout'])[1]
或
(//button[@ng-class='continueDellMetricsClass'][text()='Checkout'])[1]
请与我分享使用 C#
在购物车中定位Checkout
按钮的定位器
所需的元素是 Angular element so you have to induce WebDriverWait for the desired ElementToBeClickable and you can use either of the following
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();