Kann jemand helfen zu zeigen, warum das nicht funktioniert?moveToElement() zum Ausführen einer Hover-Aktion
Seite Objekt:
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.support.CacheLookup;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.How;
import org.openqa.selenium.support.PageFactory;
public class NavBarPO {
WebDriver driver;
Actions action;
public NavBarPO(WebDriver driver){
this.driver = driver;
PageFactory.initElements(driver, this);
action = new Actions(driver);
}
@CacheLookup
@FindBy(how = How.CSS, using = "li.menu-item.menu-item-type-taxonomy.menu-item-object-wpsc_product_category.menu-item-has-children.has_children > a")
private WebElement product_Category;
public void hover_Product_Category(){
action.moveToElement(product_Category);
}
}
Test:
public class OpenDemos {
@BeforeTest
public void Initialize() {
System.setProperty("webdriver.chrome.driver", "C:/Users/u6028938/Documents/Selenium Java/chromedriver.exe");
System.setProperty("webdriver.gecko.driver", "C:/Users/u6028938/Documents/Selenium Java/geckodriver.exe");
}
@Test
public void SecondTest() throws InterruptedException {
WebDriver driver = new FirefoxDriver();
NavBarPO nav = new NavBarPO(driver);
driver.get("http://www.store.demoqa.com");
Thread.sleep(3000);
nav.Hover_Product_Category();
System.out.println("Successfully Executed Test!");
Thread.sleep(10000);
driver.quit();
}
}
Die nav.hover_Product_Category()
einfach tut nichts, nicht einmal einen Fehler. Wenn ich .click()
anstelle von .moveToElement()
verwende, wird das Element angeklickt und das Dropdown, das ich will, wird angezeigt, so dass der Selektor korrekt ist.
I enthalten '.perform()' und jetzt der Test wirft die Ausnahme 'org.openqa.selenium.UnsupportedCommandException: POST/session/d33e2dc4-2b3b-4f1b-a22d-20673c2445b7/moveto –
hat keinen bekannten command' entsprechen @GabrielAbel Wo tritt die Ausnahme auf? auf 'action.moveToElement (product_Category) .perform();'? – Guy
Genau @Guy. Wenn ich '.perform()' einschließe. Wenn es nur "action.moveToElement (product_Category)" war, ist diese Ausnahme nicht aufgetreten. –