Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 提取菜单链接_Java_Selenium_Selenium Webdriver - Fatal编程技术网

Java 提取菜单链接

Java 提取菜单链接,java,selenium,selenium-webdriver,Java,Selenium,Selenium Webdriver,我想获得所有菜单页面链接,以便从每个菜单页面获取产品, 下面是菜单的HTML代码 <nav id="cavas_menu" class="navbar navbar-default" role="navigation"> <!-- Brand and toggle get grouped for better mobile display --> <div class="navbar-header"> &

我想获得所有菜单页面链接,以便从每个菜单页面获取产品, 下面是菜单的HTML代码

<nav id="cavas_menu" class="navbar navbar-default" role="navigation">
        <!-- Brand and toggle get grouped for better mobile display -->
        <div class="navbar-header">
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
        </div>
        <!-- Collect the nav links, forms, and other content for toggling -->
        <div id="leo-top-menu" class="collapse navbar-collapse navbar-ex1-collapse">
            <ul class="nav navbar-nav megamenu"><li class=" parent dropdown aligned-left ">
                    <a href="#" class="dropdown-toggle has-category" data-toggle="dropdown" target="_self"><span class="menu-title">Categories</span><b class="caret"></b></a><div class="dropdown-sub dropdown-menu" style="width:400px"><div class="dropdown-menu-inner"><div class="row"><div class="mega-col col-sm-6"> <div class="mega-col-inner "><div class="leo-widget"><div class="widget-subcategories">
        <div class="widget-inner">
        <div class="menu-title">Home</div>
        <ul>
                            <li class="clearfix">
                    <a href="https://www.vapors.com/14-e-juices" title="E-Juices" class="img">
                        E-Juices 
                    </a>
                </li>
                            <li class="clearfix">
                    <a href="https://www.vapors.com/15-mods" title="Mods" class="img">
                        Mods 
                    </a>
                </li>
                            <li class="clearfix">
                    <a href="https://www.vapors.com/17-accessories" title="Accessories" class="img">
                        Accessories 
                    </a>
                </li>
                            <li class="clearfix">
                    <a href="https://www.vapors.com/19-starter-kits" title="Starter Kits" class="img">
                        Starter Kits 
                    </a>
                </li>
                            <li class="clearfix">
                    <a href="https://www.vapors.com/21-ego" title="Ego" class="img">
                        Ego 
                    </a>
                </li>
                            <li class="clearfix">
                    <a href="https://www.vapors.com/27-rda" title="RDA" class="img">
                        RDA 
                    </a>
                </li>
                            <li class="clearfix">
                    <a href="https://www.vapors.com/28-regulated-mods" title="Regulated Mods" class="img">
                        Regulated Mods 
                    </a>
                </li>
                            <li class="clearfix">
                    <a href="https://www.vapors.com/29-clearomizer" title="Clearomizer" class="img">
                        Clearomizer 
                    </a>
                </li>
                            <li class="clearfix">
                    <a href="https://www.vapors.com/30-drip-tips" title="Drip Tips" class="img">
                        Drip Tips 
                    </a>
                </li>
                            <li class="clearfix">
                    <a href="https://www.vapors.com/33-sales" title="Sales" class="img">
                        Sales 
                    </a>
                </li>

        </ul>
    </div>
</div>
 </div></div></div><div class="mega-col col-sm-6"> <div class="mega-col-inner "><div class="leo-widget"> <div class="widget-products">
        <div class="menu-title">
        New Products
    </div>
        <div class="widget-inner">

                <div class="product-block">










             <div class="product-container clearfix">   
                    <div class="image ">
                            <a class="product_img_link" href="https://www.vapors.com/rda/794-plume-veil-v25-limited-ed.html" title="Plume Veil V2.5 Limited Ed." itemprop="url">
                                <img class="replace-2x img-responsive" src="https://www.vapors.com/307-home_default/plume-veil-v25-limited-ed.jpg" alt="Plume Veil V2.5 Limited Ed." title="Plume Veil V2.5 Limited Ed." itemprop="image">
                        </a>
                                                            <span class="new-box">
                                    <span class="new-label">New</span>
                                </span>
                                                </div>
                    <div class="product-meta">
                            <h5 itemprop="name">
                                                                <a class="product-name" href="https://www.vapors.com/rda/794-plume-veil-v25-limited-ed.html" title="Plume Veil V2.5 Limited Ed." itemprop="url">
                                    Plume Veil V2.5 Limited Ed.
                                </a>
                            </h5>
                            <p class="product-desc" itemprop="description">

                            </p>    
                                                            <div itemprop="offers" itemscope="" itemtype="http://schema.org/Offer" class="content_price">
                                                                            <span itemprop="price" class="price product-price">
                                            $89.99                                      </span>
                                        <meta itemprop="priceCurrency" content="1">
                                                                                            </div>
                                                    </div>
                </div>                  



             <div class="product-container clearfix">   
                    <div class="image ">
                            <a class="product_img_link" href="https://www.vapors.com/rda/793-plume-veil-v25.html" title="Plume Veil V2.5" itemprop="url">
                                <img class="replace-2x img-responsive" src="https://www.vapors.com/306-home_default/plume-veil-v25.jpg" alt="Plume Veil V2.5" title="Plume Veil V2.5" itemprop="image">
                        </a>
                                                            <span class="new-box">
                                    <span class="new-label">New</span>
                                </span>
                                                </div>
                    <div class="product-meta">
                            <h5 itemprop="name">
                                                                <a class="product-name" href="https://www.vapors.com/rda/793-plume-veil-v25.html" title="Plume Veil V2.5" itemprop="url">
                                    Plume Veil V2.5
                                </a>
                            </h5>
                            <p class="product-desc" itemprop="description">
                                This all new version of the Veil is a Sub-Ohm V2.5 RDA by...
                            </p>    
                                                            <div itemprop="offers" itemscope="" itemtype="http://schema.org/Offer" class="content_price">
                                                                            <span itemprop="price" class="price product-price">
                                            $89.99                                      </span>
                                        <meta itemprop="priceCurrency" content="1">
                                                                                            </div>
                                                    </div>
                </div>                  


        </div>



    </div>
</div>
</div></div></div></div></div></div></li><li class="active">
                        <a href="https://www.vapors.com/14-e-juices" target="_self" class="has-category"><span class="menu-title">E-Juices</span></a></li><li class="">
                        <a href="https://www.vapors.com/15-mods" target="_self" class="has-category"><span class="menu-title">Mods</span></a></li><li class="">
                        <a href="https://www.vapors.com/28-regulated-mods" target="_self" class="has-category"><span class="menu-title">Regulated Mods</span></a></li><li class="">
                        <a href="https://www.vapors.com/27-rda" target="_self" class="has-category"><span class="menu-title">RDA</span></a></li><li class="">
                        <a href="https://www.vapors.com/19-starter-kits" target="_self" class="has-category"><span class="menu-title">Starter Kits</span></a></li><li class="">
                        <a href="https://www.vapors.com/29-clearomizer" target="_self" class="has-category"><span class="menu-title">Clearomizer</span></a></li><li class="">
                        <a href="https://www.vapors.com/30-drip-tips" target="_self" class="has-category"><span class="menu-title">Drip tips</span></a></li><li class="">
                        <a href="https://www.vapors.com/21-ego" target="_self" class="has-category"><span class="menu-title">Ego</span></a></li><li class="">
                        <a href="https://www.vapors.com/17-accessories" target="_self" class="has-category"><span class="menu-title">Accessories</span></a></li><li class="sales">
                        <a href="https://www.vapors.com/33-sales" target="_self" class="has-category"><span class="menu-title">Sales</span></a></li></ul>
        </div>
</nav>

切换导航
    新产品 新的

    $89.99 新的

    这款全新版本的面纱是一款亚欧姆V2.5 RDA,由。。。

    $89.99
我需要获取所有href链接并单击每个链接以执行一些操作

下面是我尝试过的代码,但输出为null:

 List<WebElement> cat=driver.findElements(By.xpath("//*[@id='cavas_menu']"));


     for (WebElement catmenu : cat){

         System.out.println(catmenu.getAttribute("href"));


     }
    }
List cat=driver.findElements(By.xpath(“/*[@id='cavas_menu']);
用于(WebElement catmenu:cat){
System.out.println(catmenu.getAttribute(“href”);
}
}

我已经看过了您的代码,这里有一个稍微修改过的版本:

  public void sample() {
    driver.get("C:\\Users\\dmalinovschi\\Desktop\\index.html");
        List<WebElement> listElements;
        listElements =  driver.findElements(By.xpath("//li[@class='clearfix']/a"));

        for (int i=0; i<listElements.size(); i++) {
            String link = listElements.get(i).getAttribute("href");
           System.out.println(link);
        }
}
public void sample(){
get(“C:\\Users\\dmalinovschi\\Desktop\\index.html”);
列出列表元素;
liselements=driver.findElements(By.xpath(“//li[@class='clearfix']/a”);

对于(inti=0;i,您的代码有几个问题

1) XPath在
列表中只有一个元素,因为只有一个元素具有
id=cavas\u菜单

<nav id="cavas_menu" class="navbar navbar-default" role="navigation">

这不是你想要的。你想要的是菜单中的链接

2) 第二个问题是,Selenium将只与可见元素交互,并且您想要的元素(链接)位于菜单内部,因此您需要悬停菜单以公开和删除它们

我测试了下面的代码,它运行正常

driver.get("https://www.vapors.com/");

// dismiss Age Certification dialog
driver.findElement(By.cssSelector("a.over-18")).click();

// hover the menu to expose it
Actions builder = new Actions(driver);
builder.moveToElement(driver.findElement(By.cssSelector("span.menu-title"))).build().perform();

// gather the links and print the HREFs
List<WebElement> links = driver.findElements(By.cssSelector("a.img"));
for (WebElement link : links)
{
    System.out.println(link.getAttribute("href"));
}
driver.get(“https://www.vapors.com/");
//“取消年龄证明”对话框
driver.findElement(通过.cssSelector(“a.over-18”))。单击();
//将菜单悬停以显示它
动作生成器=新动作(驱动程序);
builder.moveToElement(driver.findelelement(By.cssSelector(“span.menu title”))).build().perform();
//收集链接并打印HREF
列表链接=driver.findElements(By.cssSelector(“a.img”);
用于(WebElement链接:链接)
{
System.out.println(link.getAttribute(“href”);
}

谢谢你的快速回复,但我收到了一个错误,选择无效,或者你需要在新选项卡上打开这些链接吗?对不起,我已经快速编写了代码。现在检查编辑,我已经测试过了。伙计,你试过了吗?伙计,你需要放松。当他尝试时,他会让你知道。为什么这么匆忙?好奇:)是的,这就是我添加的内容建议使用明确的
driver.get("https://www.vapors.com/");

// dismiss Age Certification dialog
driver.findElement(By.cssSelector("a.over-18")).click();

// hover the menu to expose it
Actions builder = new Actions(driver);
builder.moveToElement(driver.findElement(By.cssSelector("span.menu-title"))).build().perform();

// gather the links and print the HREFs
List<WebElement> links = driver.findElements(By.cssSelector("a.img"));
for (WebElement link : links)
{
    System.out.println(link.getAttribute("href"));
}