#selenium #selenium-webdriver #selenium-firefoxdriver
#селен #selenium-webdriver #selenium-firefoxdriver
Вопрос:
Скриншот элемента, который я хочу щелкнуть:
Я автоматизирую свой веб-сайт (новичок в автоматизации). после входа в систему я попадаю на другую страницу, где веб-драйвер selenium не может найти ни один из элементов (я перепробовал все возможности, даже связанные с sso).
Единственное решение, которое я смог найти, это использовать вкладки и ввод.
Поэтому, когда я захожу на эту страницу, мне нужно нажать 9 раз клавишу «TAB» с клавиатуры, а затем ввести, чтобы мой логин был подтвержден. поскольку у меня нет ни одного элемента, с помощью которого я мог бы выполнять действия с вкладками и вводом. есть ли способ, при котором, как только я попадаю на эту страницу, веб-драйвер начинает нажимать клавишу «TAB» 9 раз, а затем «Enter» в 10 раз.
Пожалуйста, помогите, я работаю над этим уже более недели и ничего не добиваюсь.
optimist_creeper-основной класс:
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. Ваш вопрос не так понятен. «после входа в систему я попадаю на другую страницу, где веб-драйвер selenium не может найти ни одного из элементов» — что это значит? Уточните свое намерение.
2. Вы задали вопрос, но не опубликовали ни одного написанного вами кода, ни соответствующего HTML-кода, ни ссылки на страницу. Я не уверен, как мы должны вам помочь.
Ответ №1:
Просто получите случайный объект, такой как тег body, и используйте его для отправки нажатий клавиш.
например
WebElement dummyElement = driver.findElement(By.xpath("/html/body"));
for (int i = 0; i < 9; i) {
dummyElement.sendKeys(keys.TAB);
}
dummyElement.sendKeys(keys.ENTER);
Приведенный выше код находит тело и устанавливает его как элемент. Затем он нажимает клавишу tab 9 раз, а затем нажимает клавишу ввода. Это то, о чем вы просили. Надеюсь, это поможет.
Комментарии:
1. Спасибо, но проблема в том, что он не может найти ни одного элемента на этой странице. поможет ли фиктивный элемент?
2. Если вы даже не можете найти
<html>
элемент, значит, Selenium отключен и не может вам помочь3. Как сказал @sokkyoku, похоже, у вас возникли проблемы с запуском работы selenium, не говоря уже о поиске элемента.