【问题标题】:Mouse Over Event In Selenium webdriverSelenium webdriver中的鼠标悬停事件
【发布时间】:2018-05-12 00:36:46
【问题描述】:

我无法从菜单中显示子菜单

我尝试了以下方法 1)我试过鼠标悬停动作(明显的一个) 2)我试过javascript执行器

问题是 HTML 组件仅在鼠标悬停时加载,因此无法设置 html 中不存在的元素的属性 我正在使用 java https://www.milonic.com/index.php

【问题讨论】:

    标签: selenium-webdriver mouseover


    【解决方案1】:

    悬停动作效果很好,我编写了一些测试代码,您可以根据需要进行修改,这里点击“关于 Milonic”选项卡中的“关于我们”链接

    您需要的是带有ExpectedConditionswait 对象。它在这里等待菜单中的元素可点击。

            driver.get("https://www.milonic.com/index.php");
    
    
            Actions action = new Actions(driver);
    
            WebElement hover = driver.findElement(By.id("el136"));      
            action.moveToElement(hover).build().perform();      
    
            WebDriverWait wait = new WebDriverWait(driver, 5);
            WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("#tbl0 #pTR0 a")));
            element.click();
    

    【讨论】:

    • 你是如何得出 css 定位器的?
    • 你所说的“派生”是什么意思?
    • 我想知道您使用哪个工具来获取 CSS 定位器“#tbl0 #pTR0 a”,或者您是手动完成的
    【解决方案2】:

    您也可以使用 javascript 执行器本身,但您需要检查 css 属性并使用 javascript 操作它下面是一个关于如何操作它的示例......这里我们已经删除了 CSS 中元素的 display none 属性

    ((Javascript执行器) driver).executeScript("document.getElementsByClassName('放置 类名')[0].style.display = 'block';");

    检查它是否适合你......如果没有,请提供代码

    【讨论】:

    • javaexecutor(display: block) 方法不起作用,因为隐藏元素的 HTML 直到 mouseover 事件才加载
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    相关资源
    最近更新 更多