Локатор для определения местоположения элемента кнопки не работает при размещении в коде, но работает во внутреннем поиске Chrome - PullRequest
0 голосов
/ 15 ноября 2018

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]

Пожалуйста, поделитесь со мной локатором, чтобы найти кнопку Checkout в корзине, используя C #

1 Ответ

0 голосов
/ 15 ноября 2018

Требуемый элемент является Angular элементом, поэтому вам нужно WebDriverWait для требуемого ElementToBeClickable , и вы можете использовать любой из следующих LocatorСтратегии как решения:

  • 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();
    
...