我开始使用硒。我打开了网址并输入了我的用户名和密码:Tribal Wars 2。问题是到达此按钮点击:
<a href="#" class="btn-orange btn-border small-icon" ng-click="selectCharacter(w.charId, w.id, w.loginDisabled)" tooltip="" tooltip-if="w.loginDisabled" tooltip-content="Diese Welt wurde geschlossen." ng-class="{'btn-grey': w.loginDisabled}" <span class="icon" <span class="icon-inner character" ng-class="{ 'character': playerId === w.ownerId, 'coop': playerId !== w.ownerId, 'locked': w.loginDisabled }"</span </span <span class="wrapper align-left" <span class="text character ng-binding"Rammboss</span <span class="text world ng-binding"Leeds Castle</span </span </a
Java代码:
driver.findElement(By.xpath("//*[@id=\"wrapper\"]/div[2]/div[3]/div/div[ 1]/div[3]/div[ 1]/ul/li/a")).click();
在端口20436上启动ChromeDriver(v2.9.248315)线程中的异常 &#34;主&#34; org.openqa.selenium.NoSuchElementException:没有这样的元素
(会议信息:chrome = 53.0.2785.143)(驱动信息: chromedriver = 2.9.248315,platform = Windows NT 6.1 SP1 x86_64)(警告: 服务器没有提供任何堆栈跟踪信息)命令 持续时间或超时:39毫秒有关此错误的文档, 请访问:seleniumhq.org/exceptions/no_such_element.html 构建信息:版本:&#39; 2.43.1&#39;,修订版: &#39; 5163bceef1bc36d43f3dc0b83c88998168a363a0&#39;,时间:&#39; 2014-09-10 09:43:55&#39;系统信息:主持人:&#39; AGBioSA04&#39;,ip:&#39; 10.4.1.81&#39;,os.name: &#39; Windows 7&#39;,os.arch:&#39; amd64&#39;,os.version:&#39; 6.1&#39;,java.version: &#39; 1.8.0_102&#39;驱动程序信息:org.openqa.selenium.chrome.ChromeDriver 功能[{applicationCacheEnabled = false,rotate = false, 铬= {userDataDir = C:\用户\管理员\应用程序数据\本地\ TEMP \ scoped_dir4760_1168}, takesHeapSnapshot = true,databaseEnabled = false,handlesAlerts = true, version = 53.0.2785.143,platform = XP,browserConnectionEnabled = false, nativeEvents = true,acceptSslCerts = true,locationContextEnabled = true, webStorageEnabled = true,browserName = chrome,takesScreenshot = true, javascriptEnabled = true,cssSelectorsEnabled = true}]会话ID: 5f87f399ba0889cb549ffc090b9dffbf at sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 在 org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:204) 在 org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:156) 在 org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:599) 在 org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:352) 在 org.openqa.selenium.remote.RemoteWebDriver.findElementByXPath(RemoteWebDriver.java:449) 在org.openqa.selenium.By $ ByXPath.findElement(By.java:357)at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:344) 在com.mysite.selenium.HomePage.fillField(HomePage.java:46)at com.mysite.selenium.HomePage.main(HomePage.java:58)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在java.lang.reflect.Method.invoke(Method.java:498)at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
这个游戏是用Php和Javascript编写的。 是否可以使用硒进行此操作?
答案 0 :(得分:0)
在chrome控制台上尝试了xpath,但是存在问题。
您只需使用此xpath点击“更多信息”/“Mehr Informationen”按钮
//div[@class='more-info']//a
如果您尝试单击登录按钮,请使用以下xpath之一
//button[span[.='Login']]
或者
//button[@class='button-login']
此外,虽然问题中的xpath不正确并且未返回任何匹配的节点,但为了将来参考,请不要在xpath中指定双引号,即I.e \“wrapper \”。改为使用它:
//*[@id='wrapper']
答案 1 :(得分:0)
您可能需要在登录后等待您的元素。
WebDriverWait wait = new WebDriverWait(driver, 10); // Wait for 10 seconds.
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@id=\"wrapper\"]/div[2]/div[3]/div/div[ 1]/div[3]/div[ 1]/ul/li/a")));
WebElement element = driver.findElement(By.xpath("//*[@id=\"wrapper\"]/div[2]/div[3]/div/div[ 1]/div[3]/div[ 1]/ul/li/a"));
element.click();
希望有所帮助。
编辑:只是因为你找到xpaths有困难 - 在chrome:
答案 2 :(得分:0)
是的,无论在哪种语言应用程序开发中,您都可以使用硒。 Selenium在黑盒子级别工作,因此它与Web应用程序的代码库没有任何关系。
关于您的问题,从异常中,元素定位器错误或您需要等待元素存在。您可以在firfox中使用firbug和firepath来确保您的定位器有效并指向正确的元素。
这些是您在提供自动化实施时需要注意的常见事项。需要了解selenium或webdriver是api,并提供了一种与测试中的Web /移动应用程序进行交互的方法。要克服所有其他测试需求和一般自动化挑战,您应该创建基本框架,注意或开始使用可用的现有框架,如QMetry Automation Framework