无法识别屏幕上的元素 - 如何使用选项卡

时间:2016-10-02 20:10:11

标签: selenium selenium-webdriver selenium-firefoxdriver

我想点击的元素的屏幕截图:

我自动化我的网站(自动化新手)。一旦我登录我进入另一个页面,其中selenium web驱动程序无法找到任何元素(我尝试了所有可能性甚至sso相关)。

我找到的唯一解决方案就是使用标签并输入。

因此,当我进入该页面时,我需要点击9次" TAB"键盘上的键然后输入,以便我的登录验证。因为我没有使用任何元素来执行选项卡并输入操作。有没有办法,一旦我到达该页面,网络驱动程序开始按" TAB"键9次然后"输入" 10次​​。

请帮助我一个星期以来一直在研究这个问题但没有得到 任何地方。

optimist_creeper-main class:

package Modules;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.Test;
import Modules.HomePage;

public class MainClass {
    String appUrl = "als-stg-1.mtvn.ad.viacom.com/webqa/";

    @Test public void MainTest() {
        System.setProperty("webdriver.gecko.driver", "C:\\Shayni Coding\\Automation\\Gecko\\geckodriver.exe");
        WebDriver driver = new FirefoxDriver();
        driver.get(appUrl);
        HomePage home = new HomePage();
        home.HomePageTest(driver);
    }
}

主页课程:

public class HomePage {
    @BeforeClass public void beforeClass() {
        System.out.println("before class");
    }
    public void HomePageTest(WebDriver driver) {
        driver.manage().window().maximize();
        WebElement email = driver.findElement(By.id("cred_userid_inputtext"));
        email.sendKeys("shayni@outlook.com");
        WebElement pass = driiver.findElement(By.id("cred_password_inputtext"));
        pass.sendKeys(Keys.ENTER);
        pass.click();
        String expectedTitle = "VMS Web";
        String actualTitle = driver.getTitle();
        Assert.assertEquals(expectedTitle,actualTitle);
    }
}

感谢。

1 个答案:

答案 0 :(得分:0)

只需获取一个随机对象,如body标签,然后使用它来发送按键。

e.g。

 WebElement dummyElement = driver.findElement(By.xpath("/html/body"));
 for (int i = 0; i < 9; ++i) {
     dummyElement.sendKeys(keys.TAB);
 }
 dummyElement.sendKeys(keys.ENTER);

上面的代码找到了body并将其设置为元素。然后按Tab键9次,然后按下回车键。这就是你要求的。希望有所帮助。