我尝试过多种方法在button元素(dropbtn)上执行WebDriver Click()方法:
//*[@id="pedigree-controls"]/div[2]/div/div/button
但是,出于某种原因,可能因为它是一个咏叹调控件并且它包含 span class =" visual-hidden ",Selenium不会点击它。
WebNavigator.Driver.FindElement(By.XPath("//div[@id='pedigree-controls']/div[2]/div/div/button")).Click();
我想知道是否有办法达到那个特定元素。有谁知道怎么做?
答案 0 :(得分:0)
从您提供的 WebElement 的快照中,似乎要扩展下拉列表,您必须在click()
标记上调用<span>
通过以下任一定位器策略选择选择谱系视图:
WebNavigator.Driver.FindElement(By.XPath("//div[@id='pedigree-controls']//button[@class='dropbtn']//span[@class='visually-hidden']")).Click();
//or
WebNavigator.Driver.FindElement(By.XPath("//div[@id='pedigree-controls']//button[@class='dropbtn']//span[contains(.,'Select Pedigree View:')]")).Click();
答案 1 :(得分:0)
我得到了答案! 该页面正在使用使用Polymer构建的Shadow DOM Elements,这就是我可以找到该元素但不能执行任何操作的原因。为了达到citied元素,我需要在父元素div,tags等中找到子元素,直到元素到达为止。