我有这个逻辑,当前页面的标题首先点击下一个按钮,再次获取标题,如果两个标题相同,意味着导航没有移动到下一页,它再次点击下一步.
但是,我的问题是title元素的Xpath不同 - 相同的title元素有两个Xpath.一个是其他页面中的另一个页面.
就是这个,
(.//span[@class='g-title'])[2]
Run Code Online (Sandbox Code Playgroud)
要么
.//span[@class='g-title']
Run Code Online (Sandbox Code Playgroud)
那么,我该怎么处理呢?
我的测试用例:
我可以通过获取窗口句柄数来检查打开的窗口数,并断言它等于2-以确保在单击第二个链接时,内容在同一子窗口上刷新,而不会打开另一个新窗口。
如果万一这些链接在新选项卡中打开,我如何检查此测试用例(第一次在首页上单击链接时打开了“新”选项卡。进一步单击主页上的任何链接时,将在同一新选项卡上刷新内容)?有没有一种方法可以计算窗口中的标签数?
还是硒强制将新选项卡作为新窗口打开?
我正在使用 Appium 1.6 来自动化 Android UI 测试。
在此图像中,我无法从微调器中选择任何国家/地区(例如:日本)。
这是我正在使用的代码:
driver.findElement(By.id("com.akkipet.android:id/country_spinner__add_information")).click();
driver.findElement(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector()).scrollIntoView("+ "new UiSelector().text(\"India\"));")).click()
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?单击微调器后,虽然我无法读取国家/地区值,但我可以读取其他字段,例如名字、姓氏等。
现在,我正在使用点击功能在特定坐标处点击以选择所需的选项。但这将使其特定于设备。此外,由于选项列表因环境而异,我将不得不为每个环境提供一组不同的坐标。
点击代码:
touchAction.tap (200, 850).perform();
Run Code Online (Sandbox Code Playgroud)
有人可以提出更好的解决方法吗?
automated-tests android-testing selenium-webdriver appium android-uiautomator
由于冲突错误,我通过 RubyMine 运行的自动化测试失败。虽然它通过命令行运行完全正常。以下是错误:
Unable to activate aws-sdk-v1-1.67.0, because json-2.0.2 conflicts with json (~> 1.4) (Gem::ConflictError)
Run Code Online (Sandbox Code Playgroud)
我也是 ruby 的新手,所以以下是宝石列表:
actioncable (5.1.4)
actionmailer (5.1.4)
actionpack (5.1.4)
actionview (5.1.4)
activejob (5.1.4)
activemodel (5.1.4)
activerecord (5.1.4)
activesupport (5.1.4)
addressable (2.5.2)
appium_lib (9.6.1)
arel (8.0.0)
ast (2.3.0)
avro (1.8.2, 1.7.7)
awesome_print (1.8.0)
aws-partitions (1.21.0)
aws-sdk (1.67.0)
aws-sdk-acm (1.0.0)
aws-sdk-apigateway (1.1.0)
aws-sdk-applicationautoscaling (1.3.0)
aws-sdk-applicationdiscoveryservice (1.0.0)
aws-sdk-appstream (1.0.0)
aws-sdk-athena (1.0.0)
aws-sdk-autoscaling (1.3.0)
aws-sdk-batch (1.1.0)
aws-sdk-budgets (1.1.0)
aws-sdk-clouddirectory (1.0.0)
aws-sdk-cloudformation (1.1.0)
aws-sdk-cloudfront (1.0.0)
aws-sdk-cloudhsm (1.1.0)
aws-sdk-cloudhsmv2 (1.0.0)
aws-sdk-cloudsearch …Run Code Online (Sandbox Code Playgroud) 我在Windows 10计算机上安装了docker。
我的泊坞窗在命令行上工作正常。
但是Kitematic无法正常工作并且抛出错误以下
GetMachineName,(默认)调用。DriverName,(默认)调用。GetCreateFlags,(默认)调用。SetConfigFromFlags,(默认)调用。PreCreateCheck,(默认)命令:C:\ Program Files \ Oracle \ VirtualBox \ VBoxManage.exe --version,(默认)DBG | STDOUT:,(默认)DBG | {,(默认)DBG | 5.2.6r120293,(默认)DBG | },(默认)DBG | STDERR:,(默认)DBG | {,(默认)DBG | },(默认)DBG | 命令:wmic计算机系统获取虚拟机监控程序存在,(默认)DBG | STDOUT:,(默认)DBG | {,(默认)DBG | HypervisorPresent,(默认)DBG | TRUE,(默认)DBG | ,(默认)DBG | },创建前检查错误:“此计算机正在运行Hyper-V。激活Hyper-V时,VirtualBox不会启动64位VM。使用Hyper-V作为驱动程序,或禁用Hyper-V管理程序。 (要跳过此检查,使用--virtualbox-no-vtx-check)”,打开C:\ Users \ ShubhamJain。docker\ machine \ machines \ default \ default \ Logs \ VBox.log:系统找不到指定的路径。,通知bugsnag: [创建前检查错误:“此计算机正在运行Hyper-V。激活Hyper-V后,VirtualBox不会启动64位VM。使用Hyper-V作为驱动程序,或禁用Hyper-V管理程序。(要跳过此检查,请使用--virtualbox-no-vtx-check)“],
我已经安装了docker工具和treid来使用它的Kitematic,但仍然收到此错误。
我试图重命名没有空间的docker工具文件夹并在.sh中设置相同的名称,但Kitematic仍然无法找到它。
我已经尝试了互联网上的许多选项,并且由于同样的原因,我的docker实际已损坏。我已经将其设置为出厂重置设置,然后它开始工作。
例:
https://jayvilalta.com/blog/2016/04/28/installing-docker-toolbox-on-windows-with-hyper-v-installed/
如果有人已经在窗口10中遇到此问题,请分享您的经验。
参考屏幕截图
任何解决方法都将有所帮助
docker boot2docker docker-machine kitematic docker-for-windows
我正在深入研究 Rest API 方法。根据我的经验,我总是在项目中使用/看到四种方法,方法是 - GET、POST、PUT、DELETE
参考:
我尝试理解这些方法,以下是我的理解
复制 - 这将复制资源,就像我想复制服务器上的对象或实体一样,我可以使用它。
HEAD - 此方法不返回主体并提供端点/资源的活动性
选项 - 此方法基本上显示当前端点允许使用哪种 API 方法,我们可以在 header -> ALLOW key 中看到这一点
LINK - 此方法将一个对象链接到另一个对象。基本上建立两个实体/对象之间的关系
UNLINK - 此方法取消一个对象与另一个对象的链接。删除对象之间的关系。
清除 - 没有线索
PROPFIND - 没有线索
查看 - 没有线索
如果我对上述方法的理解不正确,请纠正我,如果我遗漏了什么,请添加,并请解释 PURGE、PROPFIND 、 VIEW 等方法
我经常更新Firefox和Chrome浏览器,当前版本54.0.1 32位所以要使用哪个版本的Geckodriver.我试过两个版本Geckodriver-v0.18.0 and geckodriver-v0.16.1
为了将来参考,我在哪里可以找到支持的firefox浏览器列表以及各自的geckodriver版本
注意:启动浏览器中没有任何代码更改
以前的代码是使用geckodriver-v0.16.1为较旧的firefox版本现在在更新firefox 54.0.1和Geckodriver-v0.18.0后获得异常:
org.openqa.selenium.firefox.NotConnectedException:45000 ms后无法在端口7055上连接到主机127.0.0.1.Firefox控制台输出:oundUpdates":1,"bootstrap":false,"skinnable":false,"size":3242616,"sourceURI":null,"releaseNotesURI":null,"softDisabled":false,"foreignInstall":true "hasBinaryComponents":假 "strictCompatibility":假, "区域设置":[], "targetApplications":[{ "ID": "{ec8030f7-C20A-464f-9b0e-13a3a9e97384}", "MINVERSION":"1.5 ", "MAXVERSION": "9.9"}], "targetPlatforms":[], "multiprocessCompatible":假 "signedState":0, "看到":真 "依赖性":[], "hasEmbeddedWebExtension":假, "mpcOptedOut":假的, "userPermissions":空}
firefox selenium selenium-firefoxdriver selenium-webdriver geckodriver
我们正在使用Selenium和Java来自动化我们的Web应用程序.我们有工作代码在Windows操作系统上为三种浏览器(IE,Chrome,Firefox - 最新版本)运行自动化测试脚本.
我们已经要求在MAC操作系统上运行自动化测试脚本 - Safari浏览器.
环境细节:
MAC OS版本:macOS Sierra版本10.12.5
Safari浏览器版本:10.1.1(12603.2.4)
Selenium独立服务器版本:3.4.0
Java版本:1.8.0_112
已连接的MAC VM与VNC查看器(Sys管理团队为我们的测试提供了MAC VM).
在MAC上执行测试脚本时,下面的代码并没有最大化Safari浏览器,这对于Windows上的其他浏览器(IE,Chrome和Firefox)来说效果很好.由于这个原因,我们无法在应用程序上找到一些控件.
driver.manage().window().maximize();
Run Code Online (Sandbox Code Playgroud)
我们没有得到任何异常,代码正在执行但没有执行任何操作.
请帮助克服Safari浏览器最大化MAC问题.
真的,我认为我的问题已经解决了这个解决方案,尝试了代码来最大化Safari浏览器,但获得异常.
码:
SafariOptions options = new SafariOptions();
options.setUseCleanSession(true);
driver = new SafariDriver(options);
JavascriptExecutor jse = (JavascriptExecutor)driver;
String screenWidth = jse.executeScript("return screen.availWidth").toString();
String screenHeight = jse.executeScript("return screen.availHeight").toString();
int intScreenWidth = Integer.parseInt(screenWidth);
int intScreenHeight = Integer.parseInt(screenHeight);
org.openqa.selenium.Dimension d = new org.openqa.selenium.Dimension(intScreenWidth, intScreenHeight);
driver.manage().window().setSize(d);
Run Code Online (Sandbox Code Playgroud)
例外:
2017年8月7日下午3:11:53 org.openqa.selenium.remote.ProtocolHandshake createSession INFO:检测到的方言:线程"main"中的OSS异常org.openqa.selenium.NoSuchWindowException:无法满足使用窗口的请求因为无法找到窗口.(警告:服务器未提供任何堆栈跟踪信息)命令持续时间或超时:27毫秒构建信息:版本:'3.4.0',修订版:'5234b32',时间:'2017-03-10 09:04:52 - 0800'系统信息:主持人:'Mac.local',ip:'fe80:0:0:0:4c6:11dc:3f91:11f8%en0',os.name:'Mac OS X',os.arch:' x86_64',os.version:'10 .12.6',java.version:'1.8.0_121'驱动程序信息:org.openqa.selenium.safari.SafariDriver Capabilities [{applicationCacheEnabled = …
我想获得标签链接的网址.我已经附加了元素的类,在python中键入selenium.webdriver.remote.webelement.WebElement:
elem = driver.find_elements_by_class_name("_5cq3")
Run Code Online (Sandbox Code Playgroud)
和HTML是:
<div class="_5cq3" data-ft="{"tn":"E"}">
<a class="_4-eo" href="/9gag/photos/a.109041001839.105995.21785951839/10153954245456840/?type=1" rel="theater" ajaxify="/9gag/photos/a.109041001839.105995.21785951839/10153954245456840/?type=1&src=https%3A%2F%2Fscontent.xx.fbcdn.net%2Fhphotos-xfp1%2Ft31.0-8%2F11894571_10153954245456840_9038620401603938613_o.jpg&smallsrc=https%3A%2F%2Fscontent.xx.fbcdn.net%2Fhphotos-prn2%2Fv%2Ft1.0-9%2F11903991_10153954245456840_9038620401603938613_n.jpg%3Foh%3D0c837ce6b0498cd833f83cfbaeb577e7%26oe%3D567D8819&size=651%2C1000&fbid=10153954245456840&player_origin=profile" style="width:256px;">
<div class="uiScaledImageContainer _4-ep" style="width:256px;height:394px;" id="u_jsonp_2_r">
<img class="scaledImageFitWidth img" src="https://fbcdn-photos-h-a.akamaihd.net/hphotos-ak-prn2/v/t1.0-0/s526x395/11903991_10153954245456840_9038620401603938613_n.jpg?oh=15f59e964665efe28943d12bd00cefd9&oe=5667BDBA&__gda__=1448928574_a7c6da855842af4c152c2fdf8096e1ef" alt="9GAG's photo." width="256" height="395">
</div>
</a>
</div>
Run Code Online (Sandbox Code Playgroud)
我希望a标签的href值落在类中_5cq3.
我想在我的Jenkins管道中设置一个名为"TEST_CONFIG_ROOT"的环境变量,我在这里举例说明:
https://jenkins.io/doc/book/pipeline/jenkinsfile/#working-with-the-environment
但是,当我执行我的测试时,似乎没有设置env变量,因为我的测试仍然抱怨它没有得到它应该从env得到的变量"TEST_CONFIG_ROOT"的值.
请参阅下面的jenkins文件:
node('node1'){
def buildInput;
echo 'Deploying my build'
if(!params.buildName) {
buildInput = input(
id: 'userInput', message: 'What is the build name?', parameters: [
[$class: 'StringParameterDefinition', defaultValue: 'abcd-1', description: 'Environment', name: 'buildName']
])
}
buildToUse = params.buildName ? params.buildName : buildInput;
echo ("Env: "+buildToUse);
if ( "${params.buildParam}" == 'prequal' || !params.buildParam ){
stage('Prequal') {
}
}
node('nodename'){
if ( "${params.buildParam}" == 'test' || !params.buildParam ){
withMaven(
maven: 'M2Slave',
mavenSettingsConfig: 'MavenSettingsXML',
mavenLocalRepo: '${HOME}/.m2/repository') {
stage('Test') {
echo 'Testing my …Run Code Online (Sandbox Code Playgroud)