Selenium webdriver проблема с поиском элемента - PullRequest
0 голосов
/ 30 ноября 2018

У меня проблема с поиском элемента на странице входа.Мне нужно проверить процедуру входа в систему.Веб-страница, на которой у меня возникли проблемы, является частью платформы SAP Business Object, поэтому она не распространяется по всему миру.Существует странное соглашение об именах, и я не могу отправить ключи пользователю и элемент ввода пароля.Это выглядит так:

<div class="logonRow" id="_id0:logon:USERNAME:row">
<div class="logonLabel">
<label for="_id0:logon:USERNAME">Nazwa użytkownika:</label>
</div>
<div class="logonInput">
<input type="text" id="_id0:logon:USERNAME" name="_id0:logon:USERNAME" value="">
</div>

Я использую ниже Java-код.Я тестировал его на других страницах, и он отлично работает.

WebElement loginName = wd.findElement(By.name("_id0:logon:USERNAME"));
loginName.clear();
loginName.sendKeys(userName);

Я буду очень признателен за советы.

PS.

Я попытался безуспешно:

WebElement loginName = wd.findElement(By.id("_id0:logon:USERNAME"));
WebElement loginName = wd.findElement(By.xpath("//*[@id='_id0:logon:USERNAME']"));
WebElement loginName = wd.findElement(By.cssSelector("label[for='_id0:logon:USERNAME']"));
WebElement loginName = wd.findElement(By.xpath("//label[@for='_id0:logon:USERNAME']"));

Вот ошибка, которую я получаю:

org.openqa.selenium.NoSuchElementException: Unable to locate element: label[for='_id0:logon:USERNAME']
For documentation on this error, please visit: https://www.seleniumhq.org/exceptions/no_such_element.html
Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
System info: host: 'ROBERTTEST', ip: '10.5.241.54', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_191'
Driver info: org.openqa.selenium.firefox.FirefoxDriver
Capabilities {acceptInsecureCerts: true, browserName: firefox, browserVersion: 63.0.3, javascriptEnabled: true, moz:accessibilityChecks: false, moz:geckodriverVersion: 0.23.0, moz:headless: false, moz:processID: 2792, moz:profile: C:\Users\mardudek\AppData\L..., moz:useNonSpecCompliantPointerOrigin: false, moz:webdriverClick: true, pageLoadStrategy: normal, platform: WINDOWS, platformName: WINDOWS, platformVersion: 10.0, rotatable: false, setWindowRect: true, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify}
Session ID: 85cf59e4-eb21-4ec5-a2b3-afd0a0e6f956

Вот веб-страница, которую я сохранил: https://ufile.io/dqvbh

Ответы [ 3 ]

0 голосов
/ 30 ноября 2018

В соответствии с вашим HTML-кодом для отправки последовательности символов в поле ИМЯ ПОЛЬЗОВАТЕЛЯ вы можете использовать любое из следующих решений:

  • cssSelector:

    WebElement loginName = wd.findElement(By.cssSelector("label[for='_id0:logon:USERNAME']"));
    loginName.clear();
    loginName.sendKeys(userName);
    
  • xpath :

    WebElement loginName = wd.findElement(By.xpath("//label[@for='_id0:logon:USERNAME']"));
    loginName.clear();
    loginName.sendKeys(userName);
    
0 голосов
/ 05 декабря 2018

На странице был iframe.Сначала я переключился на iframe, а затем нашел свой элемент.

0 голосов
/ 30 ноября 2018

возможно, вам следует попытаться получить элемент по идентификатору.

Попробуйте выполнить одно из следующих действий:

WebElement loginName = wd.findElement(By.ID("_id0:logon:USERNAME"));
WebElement loginName = wd.findElement(By.xpath("//*[@id='_id0:logon:USERNAME']"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...