Как обрабатывать тени в SeleniumWebdriver Script - PullRequest
0 голосов
/ 02 июля 2019

У меня есть выпадающий список с 3 вариантами выбора, я могу щелкнуть по раскрывающемуся списку и просмотреть варианты, но не могу выбрать вариант с помощью скриптов Webdriver

Я пытался использовать JS Executor для определения выпадающего списка. Но похоже, что это теневой корень, я не могу щелкнуть по нему с помощью .click ()

Вот снимок экрана html-контента для LookUp Customer

[! [Осмотреть снимок экрана элемента] [2]] [2]


var Thr=JavaImporter(java.lang.Thread)//import Thread sleep packages

var wait = new pkg.WebDriverWait(WDS.browser,60) //import WebDriverWait Package

var dropdown = WDS.browser.findElement(pkg.By.xpath('//*[@id="select-work"]')).click()

var lastMessage = WDS.browser.executeScript('return document.querySelector("#select-work").shadowRoot.querySelector("#ink-select > option:nth-child(3)")._value').click()

WDS.log.info('lastMessage is: ' + lastMessage)```



We are not able to click on the look up customer dropdown


  [1]: https://i.stack.imgur.com/cyqCG.png
  [2]: https://i.stack.imgur.com/IGvD1.png

1 Ответ

0 голосов
/ 02 июля 2019

Из моего личного опыта Selenium плохо сочетается с Angular Js Automation.Я бы порекомендовал использовать для Angular инструмент на основе селена, который Транспортир

Пожалуйста, проверьте его и дайте мне знать, нужна ли какая-либо другая помощь по этому

Также мыможно попробовать использовать индекс, чтобы выбрать раскрывающийся список, а не щелкнуть и выбрать.ниже код C # для него

    var dropdown = driver.FindElement(By.XPath("")); // replace "" with xpath of dropdown
    var selectElement = new SelectElement(dropdown);
    selectElement.SelectByIndex(1); //pass your required index in parameter
...