Xpath Selenium查找具有类和样式可见性的元素

Xpath Selenium查找具有类和样式可见性的元素,xpath,selenium-webdriver,Xpath,Selenium Webdriver,我正在尝试使用元素的类名单击元素,但请确保我也想检查该元素是否在代码下方可见 1。driver.findElement(By.xpath(“//div[contains(@class,“+Search.SearchType+”)和contains(@style,“+visibility:visible+”))]/div/div[contains(text(),'Find')))。单击() 2。driver.findElement(By.xpath(“//div[contains(@class,“

我正在尝试使用元素的类名单击元素,但请确保我也想检查该元素是否在代码下方可见

1。driver.findElement(By.xpath(“//div[contains(@class,“+Search.SearchType+”)和contains(@style,“+visibility:visible+”))]/div/div[contains(text(),'Find')))。单击()

2。driver.findElement(By.xpath(“//div[contains(@class,“+Search.SearchType+”)和contains(@visibility,'visible'))]/div/div[contains(text(),'Find')])。单击()

  • 可见性语法错误
  • 找不到元素异常 当我删除“and contains(@visibility,'visible')”部分时,它工作正常

  • 你喜欢这个工作吗

    By.cssSelector("div." + Search.SearchType + ":not([style *= 'display:none'])")
    

    你喜欢这个工作吗

    By.cssSelector("div." + Search.SearchType + ":not([style *= 'display:none'])")
    

    @Brantley:Selenium的
    isDisplayed()
    api就是为了这个目的,通过不解析'style'属性来检查元素的可见性


    @Brantley:Selenium的
    isDisplayed()
    api就是为了这个目的,通过不解析'style'属性来检查元素的可见性


    您能发布您试图定位的HTML吗?另外,在您的第一个语句中,将
    “+visibility:visible+”
    更改为
    “visibility:visible”
    …这是您的语法错误太棒了!!在纠正语法错误后,它起作用了。你能发布你试图定位的HTML吗?另外,在您的第一个语句中,将
    “+visibility:visible+”
    更改为
    “visibility:visible”
    …这是您的语法错误太棒了!!它在更正语法错误后起作用。此未起作用会引发异常,但未找到此类元素。我会接受上面由MrTi Thankst给出的更正。该“未工作”抛出异常,未发现此类元素。我将接受MrTi给出的上述更正,谢谢