有一个鼠标悬停下拉,其中下拉显示在悬停和消失,如果鼠标指针是从下拉移动的方式。我尝试使用"Actions"类在下拉元素上悬停,但是在执行鼠标悬停之后,我看不到下拉菜单。在执行下一个动作之前,下拉式不会停留。
在执行悬停后是否存在等待,以便下拉显示时间更长,以便从下拉列表中选择/单击元素?
代码:
driver= new ChromeDriver();
driver.get("w3schools.com/howto/howto_css_dropdown.asp");
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
WebElement element = driver.findElement(By.xpath(".//*@id='main']/div[3]/button"));
Actions action= new Actions(driver);
action.moveToElement(element).perform();
Thread.sleep(5000);环境:
Chrome version: 56.0.2924.87 (64-bit)
Chrome driver: 2.27发布于 2017-03-17 08:56:24
使用为鼠标悬停操作编写的相同代码,并在鼠标悬停操作之前尝试以下解决方案。
发布于 2017-03-17 09:01:37
在执行()之后,您需要遍历这些元素。
以下是工作代码:
package demo;
import java.util.List;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.interactions.Actions;
public class MouseHoverDemo_w3school {
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "C:\\Utility\\BrowserDrivers\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.manage().window().maximize();
driver.get("https://www.w3schools.com/howto/howto_css_dropdown.asp");
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
WebElement ele = driver.findElement(By.xpath(".//div[@class='dropdown dropdown2']/button"));
Actions act = new Actions(driver);
act.moveToElement(ele).perform();
List<WebElement> links = driver.findElements(By.xpath(".//div[@class='dropdown-content']/a"));
int total_count = links.size();
for (int i=0; i<total_count; i++)
{
WebElement element = links.get(i);
String text = element.getAttribute("innerHTML");
System.out.println("Link Name is : "+text);
}
driver.quit();
}
}如果这回答了你的问题,请告诉我。
https://stackoverflow.com/questions/42851745
复制相似问题