Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Selenium 无法识别屏幕上的元素-如何使用选项卡_Selenium_Selenium Webdriver_Selenium Firefoxdriver - Fatal编程技术网

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

Selenium 无法识别屏幕上的元素-如何使用选项卡,selenium,selenium-webdriver,selenium-firefoxdriver,Selenium,Selenium Webdriver,Selenium Firefoxdriver,我要单击的元素的屏幕截图: 我正在自动化我的网站(新的自动化)。登录后,我进入另一个页面,SeleniumWeb驱动程序无法找到任何元素(我尝试了所有可能的方法,甚至与sso相关) 我能找到的唯一解决方案是使用制表符和回车键 因此,当我进入该页面时,我需要单击键盘上的9次“TAB”键,然后输入,以便验证我的登录。因为我没有任何元素可以用来执行选项卡和输入操作。有没有一种方法,一旦我进入该页面,web驱动程序开始按“TAB”键9次,然后按“Enter”键10次 请帮助我,我已经在这方面工作了一个

我要单击的元素的屏幕截图:

我正在自动化我的网站(新的自动化)。登录后,我进入另一个页面,SeleniumWeb驱动程序无法找到任何元素(我尝试了所有可能的方法,甚至与sso相关)

我能找到的唯一解决方案是使用制表符和回车键

因此,当我进入该页面时,我需要单击键盘上的9次“TAB”键,然后输入,以便验证我的登录。因为我没有任何元素可以用来执行选项卡和输入操作。有没有一种方法,一旦我进入该页面,web驱动程序开始按“TAB”键9次,然后按“Enter”键10次

请帮助我,我已经在这方面工作了一个多星期了,现在还没有找到工作 任何地方

optimist_爬行器-主要等级:

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);
    }
}

谢谢。

只需获取一个像body标签这样的随机对象,并使用它发送按键

e、 g

WebElement dummeyelement=driver.findElement(By.xpath(“/html/body”);
对于(int i=0;i<9;++i){
dummeyelement.sendKeys(key.TAB);
}
dummeyelement.sendKeys(key.ENTER);

上面的代码查找主体take并将其设置为元素。然后按tab键9次,然后按enter键。这就是你想要的。希望有帮助

你的问题不太清楚。“登录后,我进入另一个页面,SeleniumWeb驱动程序无法找到任何元素”-这是什么意思?明确你的意图。你问了一个问题,但没有发布你写的任何代码,也没有发布相关的HTML或页面链接。我不知道我们应该如何帮助你们。谢谢,但问题是它在那个页面上找不到任何元素。虚拟元素会有帮助吗?如果你甚至找不到
元素,那么Selenium已经断开了连接,也帮不了你,正如@sokkyoku所说的,似乎你在让Selenium工作方面遇到了问题,更不用说找到元素了。
 WebElement dummyElement = driver.findElement(By.xpath("/html/body"));
 for (int i = 0; i < 9; ++i) {
     dummyElement.sendKeys(keys.TAB);
 }
 dummyElement.sendKeys(keys.ENTER);