如何在SeleniumWebdriver脚本中处理阴影

时间:2019-07-02 14:14:38

标签: angular selenium-webdriver jmeter shadow-dom

我有3个选择的下拉菜单,我可以单击下拉菜单并查看选择,但不能使用Webdriver脚本单击选择

我尝试使用JS Executor来确定下拉选项。但是看起来它是一个定义的影子根,我无法使用.click()

单击它

这是查找客户

的html内容的屏幕截图

[![检查元素屏幕截图] [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 :(得分:0)

根据我的个人经验,Selenium与Angular Js Automation的配合并不理想。我建议为Angular使用基于硒的工具,Protractor

请检查一下,并告知我是否需要其他帮助

此外,我们可以尝试使用索引来选择下拉列表,而不是单击并选择。下面是它的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