2017-01-17 1 views
1

に「空間を正規化」を使用しながら、別のブラウザで別のエラーを取得する「AND」とnormalize-space()使用 - 私はこれでANDを使用しないながら、正しい方法で正常に動作しているは、私は私のWebページでの簡単なボタンを以下しているのXpath

driver.findElement(By.xpath("//button[@type='button'][normalize-space(@class='m-form-btn')]")).click(); 

をしかし

driver.findElement(By.xpath("//button[@type='button' AND normalize-space(@class='m-form-btn')]")).click(); 

//or 

driver.findElement(By.xpath("//button[normalize-space(@class)='m-form-btn' AND @type='button']")).click(); 
をway- Chromeで同じため

Exception in thread "main" org.openqa.selenium.remote.UnreachableBrowserException: Error communicating with the remote browser. It may have died. Build info: version: 'unknown', revision: '1969d75', time: '2016-10-18 09:43:45 -0700' System info: host: 'TSS167', ip: '192.168.1.167', os.name: 'Windows 8.1', os.arch: 'amd64', os.version: '6.3', java.version: '1.8.0_91' Driver info: driver.version: RemoteWebDriver Capabilities [{rotatable=false, raisesAccessibilityExceptions=false, marionette=true, firefoxOptions={args=[], prefs={}}, appBuildId=20161208153507, version=, platform=XP, proxy={}, command_id=1, specificationLevel=0, acceptSslCerts=false, processId=7824, browserVersion=50.1.0, platformVersion=6.3, XULappId={ec8030f7-c20a-464f-9b0e-13a3a9e97384}, browserName=firefox, takesScreenshot=true, takesElementScreenshot=true, platformName=windows_nt}] Session ID: 30ed9c92-2d49-4c7b-83bc-c1638e24b3e8 at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:622) at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:368) at org.openqa.selenium.remote.RemoteWebDriver.findElementByXPath(RemoteWebDriver.java:473) at org.openqa.selenium.By$ByXPath.findElement(By.java:361) at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:360) at ClassEight.main(ClassEight.java:28) Caused by: java.lang.IllegalArgumentException: expected one element but was: at com.google.common.collect.Iterators.getOnlyElement(Iterators.java:322) at com.google.common.collect.Iterables.getOnlyElement(Iterables.java:284) at org.openqa.selenium.remote.ErrorCodes.toStatus(ErrorCodes.java:138) at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:92) at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:42) at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:163) at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:82) at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:601) ... 5 more

し、次のエラー - -

Firefoxで取得エラー

Exception in thread "main" org.openqa.selenium.InvalidSelectorException: invalid selector: Unable to locate an element with the xpath expression //button[normalize-space(@class)='m-form-btn' AND @type='button'] because of the following error: SyntaxError: Failed to execute 'evaluate' on 'Document': The string '//button[normalize-space(@class)='m-form-btn' AND @type='button']' is not a valid XPath expression.

は私が期待される出力を得ているところfirepathを使用してevaluate両方xpathをしました。

私はこの問題の原因を知りません。私はANDnormalize-spaceを使用していますか?何か私は間違っている? XPathで大文字でORまたはANDを使用してselenium 3.0.1

答えて

3

を使用して

は(少なくともSeleniumで)間違った方法です。代わりにor/andを使用してください。だから試してみてください

driver.findElement(By.xpath("//button[normalize-space(@class)='m-form-btn' and @type='button']")).click(); 
関連する問題