簡體   English   中英

硒webdriver問題與查找元素

[英]Selenium webdriver problem with finding element

我在登錄頁面上查找元素時遇到問題。 我需要測試登錄過程。 我遇到問題的網頁是SAP Business Object Platform的一部分,因此它不在世界范圍內。 有一個奇怪的命名約定,我無法將密鑰發送給用戶和密碼輸入元素。 看起來像這樣:

<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

也許您應該嘗試通過ID獲取元素。

嘗試以下方法之一:

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

按照您共享的HTML格式將字符序列發送到USERNAME字段,您可以使用以下解決方案之一:

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

頁面中有iframe。 首先,我切換到iframe,然后找到了我的元素。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM