所以,我在Eclipse中为selenium webdriver编写了一些代码来使用" name"来查找元素。并向该输入框发送一个单词。此代码适用于Chrome和Firefox等其他浏览器。
但出于某种原因,当我为IE运行相同的代码时,它告诉我它无法使用" CSS"找到该元素。这很奇怪,因为我没有尝试使用" CSS"来识别元素。我正在使用" name"。
driver.findElement(By.name("ctl00$MainContent$txtFirstName")).sendKeys(name);
错误消息(为IE运行时)说:
Exception in thread "main" org.openqa.selenium.NoSuchElementException: Unable to find element with css selector == *[name='ctl00$MainContent$txtFirstName']
For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html
Build info: version: '3.8.0', revision: '924c4067df', time: '2017-11-30T11:37:19.049Z'
System info: host: 'WORKSTATION', ip: '192.168.1.6', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_151'
Driver info: org.openqa.selenium.ie.InternetExplorerDriver
Capabilities {acceptInsecureCerts: false, browserName: internet explorer, browserVersion: 11, javascriptEnabled: true, pageLoadStrategy: normal, platform: WINDOWS, platformName: WINDOWS, proxy: Proxy(), se:ieOptions: {browserAttachTimeout: 0, elementScrollBehavior: 0, enablePersistentHover: true, ie.browserCommandLineSwitches: , ie.ensureCleanSession: false, ie.fileUploadDialogTimeout: 3000, ie.forceCreateProcessApi: false, ignoreProtectedModeSettings: false, ignoreZoomSetting: false, initialBrowserUrl: http://localhost:33636/, nativeEvents: true, requireWindowFocus: false}, setWindowRect: true, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}}
答案 0 :(得分:3)
IEDriver符合w3c标准,这意味着无法按名称查找。为了弥补这一点,您的选择器将转换为css,相当于通过selenium按名称查找。
请参阅the w3c spec,其中显示w3c兼容驱动程序不需要按名称查找。
编辑:在Java code
中找到完成位置