Java Selenium-单击属性style=”的ul标记中的锚定标记;显示:无;

Java Selenium-单击属性style=”的ul标记中的锚定标记;显示:无;,java,selenium,xpath,css-selectors,display,Java,Selenium,Xpath,Css Selectors,Display,List elems=driver.findElements(By.cssSelector(“ul.menuUL>li.menuLI.ui菜单项>a”); 应该能解决你的问题 此外,在HTML代码中还有style=“display:none;”帐户详细信息更改密码我的作品我的页面我的资源不可见。当元素不可见时,即使您尝试Thread.sleep(3000L);您将无法单击所需的元素。如果您查看下一行,请在HTML代码中单击 <ul class="menuUL ui-menu ui-wid


List elems=driver.findElements(By.cssSelector(“ul.menuUL>li.menuLI.ui菜单项>a”);
应该能解决你的问题


此外,在HTML代码中还有
style=“display:none;”
帐户详细信息更改密码我的作品我的页面我的资源不可见。当元素不可见时,即使您尝试
Thread.sleep(3000L);
您将无法单击所需的元素。

如果您查看下一行,请在HTML代码中单击

<ul class="menuUL ui-menu ui-widget ui-widget-content ui-corner-all" style="display: none; top: 4px; left: 101.8px;" role="menu" aria-expanded="false" aria-hidden="true">

您可以使用以下代码执行操作:-

JavascriptExecutor js = (JavascriptExecutor) driver;
WebElement element = driver.findElement(By.xpath("//ul[@class='menuUL ui-menu ui-widget ui-widget-content ui-corner-all']"));

js.executeScript("arguments[0].setAttribute('style', 'display: fixed;')",element);

List<WebElement> elems = driver.findElements(By.cssSelector("ul.menuUL>li.menuLI.ui-menu-item>a"));

  elems.get(0).click();
JavascriptExecutor js=(JavascriptExecutor)驱动程序;
WebElement=driver.findElement(By.xpath(//ul[@class='menuUL ui-menu-widget-ui-widget-content-ui-corner-all']);
js.executeScript(“参数[0].setAttribute('style','display:fixed;')”,元素);
列表元素=driver.findElements(By.cssSelector(“ul.menuUL>li.menuLI.ui菜单项>a”);
elems.get(0).单击();

@Prathibha和@debugger89指出了正确的方向,即包含
  • 标记的
      标记具有属性style=“display:none。因此,要单击文本为“更改密码”的元素,可以使用以下代码块:

      import java.util.List;
      import org.openqa.selenium.JavascriptExecutor;  
      // lines of code
      WebElement ulContainer = driver.findElement(By.cssSelector("ul.menuUL.ui-menu.ui-widget.ui-widget-content.ui-corner-all[role='menu']"));
      ((JavascriptExecutor)driver).executeScript("arguments[0].removeAttribute('style')", ulContainer);
      List<WebElement> elems = driver.findElements(By.cssSelector("ul.menuUL li.menuLI.ui-menu-item[role='presentation'] > a"));
      for(WebElement ele:elems)
          if(ele.getAttribute("innerHTML").contains("Change Password"))
          {
              ele.click();
              break;
          }
      
      import java.util.List;
      导入org.openqa.selenium.JavascriptExecutor;
      //代码行
      WebElement ulContainer=driver.findelelement(By.cssSelector(“ul.menuUL.ui menu.ui widget.ui widget content.ui corner all[role='menu']);
      ((JavascriptExecutor)driver).executeScript(“参数[0]。removeAttribute('style')”,ulContainer);
      List elems=driver.findElements(By.cssSelector(“ul.menuUL li.menuLI.ui”菜单项[role='presentation']>a”);
      for(WebElement ele:elems)
      如果(ele.getAttribute(“innerHTML”)包含(“更改密码”))
      {
      ele.click();
      打破
      }
      
      JavascriptExecutor js = (JavascriptExecutor) driver;
      WebElement element = driver.findElement(By.xpath("//ul[@class='menuUL ui-menu ui-widget ui-widget-content ui-corner-all']"));
      
      js.executeScript("arguments[0].setAttribute('style', 'display: fixed;')",element);
      
      List<WebElement> elems = driver.findElements(By.cssSelector("ul.menuUL>li.menuLI.ui-menu-item>a"));
      
        elems.get(0).click();
      
      import java.util.List;
      import org.openqa.selenium.JavascriptExecutor;  
      // lines of code
      WebElement ulContainer = driver.findElement(By.cssSelector("ul.menuUL.ui-menu.ui-widget.ui-widget-content.ui-corner-all[role='menu']"));
      ((JavascriptExecutor)driver).executeScript("arguments[0].removeAttribute('style')", ulContainer);
      List<WebElement> elems = driver.findElements(By.cssSelector("ul.menuUL li.menuLI.ui-menu-item[role='presentation'] > a"));
      for(WebElement ele:elems)
          if(ele.getAttribute("innerHTML").contains("Change Password"))
          {
              ele.click();
              break;
          }