【问题标题】:How to click to a button which can be visiable after an Animation?? Selenium Webdriver Java如何单击动画后可见的按钮? Selenium Webdriver Java
【发布时间】:2017-12-21 23:08:26
【问题描述】:

首先,您可以查看视频并查看我试图点击哪个按钮。这是 15 秒的视频:https://evrenos-hotmail.tinytake.com/sf/MTc4NTkzNV81ODM3MDA5

无法通过直接尝试通过 Xpath 进行点击来点击该按钮:

WebElement button = driver.findElement(By.xpath(".//*[@id='DashboardContent']/div[2]/div/div/div[1]/div/div[4]/button"));
button.click();

这里是 div 的 html 部分:

<div class="col-md-6 col-xs-12 col-sm-6 u-height180 assessment-box assessment-box--orange u-mb15">
        <div class="bg-white u-rounded3">
            <div class="assessment-box__time c-greydark"><i class="icon_clock_alt"></i> ~ 5 min</div>
            <div class="alignment">
                <div>
                    <img src="https://supercv-stg.azureedge.net//Content/images/tests/page-personality.svg?1.0.0.12687" alt="" class="u-maxwidthfull">
                    <div class="assessment-box__label u-truncate">My Personality</div>
                    <div class="c-greydark u-font-style-italic u-truncate u-font-small u-lineheight1-2">Gain insight into your unique personality.</div>
                </div>
            </div>
            <div class="assessment-box__percentage" data-percentage="0" style="width: 0%;"></div>
            <div class="assessment-box__hover">
                <span class="lines"><span></span></span>
                <button onclick="continueToTest('/assessments/76/introduction', true)" s-analytics="get-started-assessments-for-personality">Get Started</button>
            </div>
        </div>
    </div>

基本上我想在这里点击“开始”按钮&lt;button onclick="continueToTest('/assessments/76/introduction', true)" s-analytics="get-started-assessments-for-personality"&gt;Get Started&lt;/button&gt; 我还尝试先单击帧,它会激活动画并使按钮可见,然后尝试单击“开始”按钮,但也没有用。

WebElement button = driver.findElement(By.xpath(".//*[@id='DashboardContent']/div[2]/div/div/div[1]/div/div[4]/button"));
WebElement frame= driver.findElement(By.xpath(".//*[@id='DashboardContent']/div[2]/div/div/div[1]/div/div[4]"));
frame.click();     
Thread.sleep(1500);
button.click();

注意:想要亲自查看页面的人可以从 supercareer.com 创建一个帐户,无需验证,可以去评估(从左侧面板)查看。

【问题讨论】:

  • 问题中的信息很少,然后要求我们在某个页面上进行注册。请提供一个很好的例子来说明你正在尝试做什么,以及问题是什么
  • 您还需要了解什么?我无法单击动画后可见的那个按钮。我想用 webdriver 点击“开始”按钮。
  • 我还编辑了信息,但我不确定如何提供有关我的问题的更多信息。如果您想知道其他任何信息,我很乐意提供。 @vlatkozelka

标签: java selenium selenium-webdriver automation selenium-firefoxdriver


【解决方案1】:

此按钮只有在鼠标悬停在框上时才可用。您可以尝试以下方法,它可能对您有所帮助。

WebElement button = driver.findElement(By.xpath(".//*[@id='DashboardContent']/div[2]/div/div/div[1]/div/div[4]/button"));
WebElement frame= driver.findElement(By.xpath(".//*[@id='DashboardContent']/div[2]/div/div/div[1]/div"));
new Actions(driver).moveToElement(frame).click(button).perform();

【讨论】:

  • 感谢@Murthi,您的建议解决了我的问题。实际上,它使按钮可见,但由于某种原因,仍然没有点击。在一点线程睡眠后,我又添加了一个按钮单击。 WebElement button = CaseFunctions.driver.findElement(By.xpath(".//*[@id='DashboardContent']/div[2]/div/div/div[1]/div/div[4]/button")); WebElement frame= CaseFunctions.driver.findElement(By.xpath(".//*[@id='DashboardContent']/div[2]/div/div/div[1]/div")); new Actions(CaseFunctions.driver).moveToElement(frame).click(button).perform(); Thread.sleep(2000); button.click();
猜你喜欢
  • 1970-01-01
  • 2016-01-30
  • 1970-01-01
  • 1970-01-01
  • 2012-08-23
  • 2017-09-08
  • 2021-09-03
  • 1970-01-01
  • 2021-11-09
相关资源
最近更新 更多