【问题标题】:How to click on img tag as per the HTML provided through Selenium and Java?如何根据 Selenium 和 Java 提供的 HTML 点击 img 标签?
【发布时间】:2019-02-11 12:08:32
【问题描述】:

如何根据 HTML 点击<img>

<a aria-expanded="false" class="dropdown-toggle" data-toggle="dropdown" href="javascript: void(0);"> <span class="cat__top-bar__avatar" href="javascript:void(0);"> <img src="assets/modules/dummy-assets/common/img/avatars/1.jpg"> </span> </a>

完整的 HTML:

<div class="cat__top-bar__right">                        
                    <!----><div class="cat__top-bar__item hidden-sm-down">
                        <div class="dropdown notification-dropdown">
                            <a aria-expanded="false" class="dropdown-toggle" href="javascript: void(0);" title="unread notifications">
                                <i class="menu-notification-icon icmn-Notification menu-left__icon"></i><!----><span class="badge badge-noti badge-danger"></span>
                            </a>
                            <div class="arrow-up notifications" id="drop-down-arrow"></div>
                            <ul aria-labelledby="" class="dropdown-menu dropdown-menu-right" id="drop-down" role="menu">
                                <div class="notification_bar">
                                    <ul>
                                        <li>Notificaitons (1112)</li>
                                        <li><a href="javascript: void(0);">Marks All as Read</a></li>
                                    </ul>
                                </div>
                                <!---->
                                <!---->
                                <div class="cat__top-bar__activity">
                                 
                                </div>
                                <a class="view-all-notify" href="#/portals/super-admin/all-notifications">View All Notificaitons</a>
                            </ul>
                        </div>
                    </div>

                    <div class="cat__top-bar__item">
                        <div class="dropdown cat__top-bar__avatar-dropdown">
                            <a aria-expanded="false" class="dropdown-toggle" data-toggle="dropdown" href="javascript: void(0);">
                                <span class="cat__top-bar__avatar" href="javascript:void(0);">
                                    <img src="assets/modules/dummy-assets/common/img/avatars/1.jpg">
                                </span>
                            </a>
                            <div class="arrow-up profile"></div>
                            
                            <!----><ul class="dropdown-menu dropdown-menu-right" id="profile-drop-down" role="menu">
                                <div class="dropdown-header"><a class="dropdown-item" href="#/portals/super-admin/profile"><i class="dropdown-icon icmn-Profile"></i> Profile</a></div>
                                <div class="dropdown-header"><a class="dropdown-item" href="#/admin"><i class="dropdown-icon icmn-Logout-icon"></i> Logout</a></div>                                
                            </ul>
                       
                        </div>
                    </div>
                </div>

【问题讨论】:

  • 问题标题中提到的代码在哪里?
  • 抱歉,未获批准。你现在可以看到了。
  • 你想点击哪个下拉元素和图片

标签: java selenium xpath css-selectors webdriver


【解决方案1】:

根据您分享的 HTML,您不应在 &lt;img&gt; 标记上调用 click(),因为它没有 onclick 事件。相反,您应该在 &lt;span&gt; 标记上调用 click()。您可以使用以下任一解决方案来执行click()

  • cssSelector:

    driver.findElement(By.cssSelector("a.dropdown-toggle > span.cat__top-bar__avatar")).click();
    
  • xpath:

    driver.findElement(By.xpath("//a[@class='dropdown-toggle']/span[@class='cat__top-bar__avatar']")).click();
    

【讨论】:

  • 非常感谢,两种方法都试了,运行良好并登录了网络应用程序,但仍然没有点击图片。
  • @RajaSahilMajeed 也许我不明白您的评论,其中包括working perfectlystill no click。如果我的解决方案对您有用,能否澄清一下?
  • @RajaSahilMajeed 查看我更新的答案并告诉我状态
  • 非常感谢。带有 cssSelector 的那个正在工作。我现在可以点击图片了。
【解决方案2】:

使用这个 xpath

driver.findElement(By.xpath("//img[@src='assets/modules/dummy-assets/common/img/avatars/1.jpg']")).click();

另外,您可以将它与 explicit wait

一起使用
wait = WebDriverWait(driver, 10)
element = wait.until(EC.element_to_be_clickable((By.XPATH, "//img[@src='assets/modules/dummy-assets/common/img/avatars/1.jpg']")))
element.click()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-15
    • 2019-01-06
    • 2018-11-20
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多