Java 如何执行多个操作并在url上单击以文本作为成员登录名的链接http://www.spicejet.com/ 通过SeleniumWebDriver
我尝试了下面的代码,但不是鼠标悬停和点击“会员登录”Java 如何执行多个操作并在url上单击以文本作为成员登录名的链接http://www.spicejet.com/ 通过SeleniumWebDriver,java,selenium,selenium-webdriver,webdriver,webdriverwait,Java,Selenium,Selenium Webdriver,Webdriver,Webdriverwait,我尝试了下面的代码,但不是鼠标悬停和点击“会员登录” WebElement lgn = driver.findElement(By.id("ctl00_HyperLinkLogin")); WebElement ssm = driver.findElement(By.xpath("//a[contains(text(), 'SpiceCash/SpiceClub Members')]")); WebElement cgm = driver.findElement(By.xpath("//a[co
WebElement lgn = driver.findElement(By.id("ctl00_HyperLinkLogin"));
WebElement ssm = driver.findElement(By.xpath("//a[contains(text(), 'SpiceCash/SpiceClub Members')]"));
WebElement cgm = driver.findElement(By.xpath("//a[contains(text(),'Member Login')]"));
Actions a1 = new Actions(driver);
a1.moveToElement(lgn).moveToElement(ssm).moveToElement(cgm).click().build().perform();
您可以尝试在moveToElement()调用之间添加等待
WebDriverWait wait=newwebdriverwait(WebDriverRunner.getWebDriver(),10);
等待.直到(预期条件.元素的可视性))
其中“元素”是应该出现在悬停菜单上的菜单
或者,您也可以使用ready解决方案框架,该框架构建在Selenium之上,具有内置的悬停方法和等待,有助于处理页面动态
通过这个,您可以找到hover()方法用法的示例。您可以尝试在moveToElement()调用之间添加等待
WebDriverWait wait=newwebdriverwait(WebDriverRunner.getWebDriver(),10);
等待.直到(预期条件.元素的可视性))
其中“元素”是应该出现在悬停菜单上的菜单
或者,您也可以使用ready解决方案框架,该框架构建在Selenium之上,具有内置的悬停方法和等待,有助于处理页面动态
通过这个,您可以找到hover()方法用法的示例。要在文本为成员登录的元素上调用单击()
,首先您必须将鼠标悬停在文本为登录/注册的元素上,然后将鼠标悬停在文本为SpiceCash/SpiceClub Members的元素上,然后使文本为Member Login的元素的WebDriverWait可单击,您可以使用以下解决方案:
- 代码块:
import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.interactions.Actions; import org.openqa.selenium.support.ui.ExpectedConditions; import org.openqa.selenium.support.ui.WebDriverWait; public class Spicejet_member_login { public static void main(String[] args) { System.setProperty("webdriver.gecko.driver", "C:\\Utility\\BrowserDrivers\\geckodriver.exe"); WebDriver driver = new FirefoxDriver(); driver.get("http://www.spicejet.com/"); new Actions(driver).moveToElement(new WebDriverWait(driver, 5).until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("a.link#ctl00_HyperLinkLogin")))).build().perform(); new Actions(driver).moveToElement(new WebDriverWait(driver, 5).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//li[@class='hide-mobile']/a[contains(.,'SpiceCash/SpiceClub Members')]")))).build().perform(); new WebDriverWait(driver, 7).until(ExpectedConditions.elementToBeClickable(By.xpath("//li[@class='hide-mobile']//ul/li/a[@href='https://book.spicejet.com/Login.aspx' and contains(.,'Member Login')]"))).click(); } }
- 浏览器快照:
单击()
,首先必须将鼠标悬停在文本为登录/注册的元素上,然后将鼠标悬停在文本为SpiceCash/SpiceClub Members的元素上,然后使文本为Member Login的元素的WebDriverWait可单击,您可以使用以下解决方案:
- 代码块:
import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.interactions.Actions; import org.openqa.selenium.support.ui.ExpectedConditions; import org.openqa.selenium.support.ui.WebDriverWait; public class Spicejet_member_login { public static void main(String[] args) { System.setProperty("webdriver.gecko.driver", "C:\\Utility\\BrowserDrivers\\geckodriver.exe"); WebDriver driver = new FirefoxDriver(); driver.get("http://www.spicejet.com/"); new Actions(driver).moveToElement(new WebDriverWait(driver, 5).until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("a.link#ctl00_HyperLinkLogin")))).build().perform(); new Actions(driver).moveToElement(new WebDriverWait(driver, 5).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//li[@class='hide-mobile']/a[contains(.,'SpiceCash/SpiceClub Members')]")))).build().perform(); new WebDriverWait(driver, 7).until(ExpectedConditions.elementToBeClickable(By.xpath("//li[@class='hide-mobile']//ul/li/a[@href='https://book.spicejet.com/Login.aspx' and contains(.,'Member Login')]"))).click(); } }
- 浏览器快照:
问题出在哪里?无法单击“会员登录”您需要提供更多详细信息。运行此代码时,会发生什么情况?如果您有任何错误,您需要发布堆栈跟踪。您还需要发布相关的html。有什么问题吗?无法单击“会员登录”您需要提供更多详细信息。运行此代码时,会发生什么情况?如果您有任何错误,您需要发布堆栈跟踪。您还需要发布相关的html。