私はJavaでSeleniumを使用して自動化ツールを作成しています。 WebDriverがFirefoxDriverの場合、次のコードは正常に動作しますが、HtmlUnitDriverに置き換えると、スパンをクリックするはずの行がクラッシュします。私はCSSセレクタとXPathの両方でスパンの位置を突き止めるようにしました。要素がロードされるまでドライバを待機させるHtmlUnitはSelenium、Javaのスパンをクリックできません
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(".//*[@id='home']/div[3]/div[3]/div[10]/div[3]/div[2]/div[1]/a/span")));
また、問題を解決しません。コードは次のとおりです。
WebDriver driver = new HtmlUnitDriver(BrowserVersion.FIREFOX_52);
//driver.setJavascriptEnabled(true);
WebDriverWait wait = new WebDriverWait(driver, 10);
//logs in
driver.get("https://www.tribalwars.net/");
driver.findElement(By.id("user")).clear();
driver.findElement(By.id("user")).sendKeys(username);
driver.findElement(By.cssSelector("div.right.login > div.wrap")).click();
driver.findElement(By.id("password")).clear();
driver.findElement(By.id("password")).sendKeys(password);
driver.findElement(By.cssSelector("a.btn-login")).click();
//It executes fine up until this point
driver.findElement(By.cssSelector("span.world_button_active")).click();
/*
This won't work either
driver.findElement(By.xpath(".//*[@id='home']/div[3]/div[3]/div[10]/div[3]/div[2]/div[1]/a/span")).click();
*/
Iが与えられていますエラー:
Exception in thread "main" org.openqa.selenium.NoSuchElementException: Returned node was not a DOM element
For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html
Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
System info: host: 'PC', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '4.4.0-53-generic', java.version: '1.8.0_131'
Driver info: driver.version: HtmlUnitDriver
at org.openqa.selenium.htmlunit.HtmlUnitDriver.findElementByCssSelector(HtmlUnitDriver.java:1247)
at org.openqa.selenium.By$ByCssSelector.findElement(By.java:430)
at org.openqa.selenium.htmlunit.HtmlUnitDriver$5.call(HtmlUnitDriver.java:1965)
at org.openqa.selenium.htmlunit.HtmlUnitDriver$5.call(HtmlUnitDriver.java:1)
at org.openqa.selenium.htmlunit.HtmlUnitDriver.implicitlyWaitFor(HtmlUnitDriver.java:1601)
at org.openqa.selenium.htmlunit.HtmlUnitDriver.findElement(HtmlUnitDriver.java:1961)
at org.openqa.selenium.htmlunit.HtmlUnitDriver.findElement(HtmlUnitDriver.java:756)
at Bot.Test.build(Test.java:86)
at Bot.Test.main(Test.java:42)
span.world_button_activeのhtmlコードを投稿できますか? – smit9234
try with elementToBeClickable(ロケータで)... – Grasshopper
セレクタのようなサウンドが要素と一致しません。ブラウザのJSコンソールを開き、document.querySelector( "span.world_button_active");を実行してセレクタの動作を確認できますか?それが要素を返すかどうかを確認してください。 –