@TestHomeValidation
Feature:copy function test
Background:
Given I am running test in "VARIABLE" environment
Run Code Online (Sandbox Code Playgroud)
我可以VARIABLE在上述给定的背景下使用吗?我想从属性文件传递此VARIABLE值。
我已经编写了一个示例代码来启动IE browser和加载Google页面。
public class Sample {
public static void main(String[] args)
{
// TODO Auto-generated method stub
System.setProperty("webdriver.ie.driver","H:/IEDriverServer.exe");
WebDriver driver=new InternetExplorerDriver();
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);
driver.get("http://www.google.com");
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我运行此脚本时,它将启动浏览器,并立即关闭(少于2秒),而不会提示任何错误,并且脚本不会终止。
这是我在控制台屏幕上看到的:
启动
InternetExplorerDriver服务器(32位)2.53.1.0
在端口46974上侦听
仅允许本地连接
谁能在这个问题上帮助我?
尝试installMaven 项目时出现此错误:
[错误] 无法在项目功能测试中执行目标 org.apache.maven.plugins:maven-dependency-plugin:2.10:analyze-only (analyze-only) on project functions-tests: Dependency Problems found -> [Help 1]
它出现在集成测试之后,在该verify阶段。由于日志提供的其他信息不多,我几乎无法猜测该在哪里查看。我尝试使用-X参数运行 maven 以进行更深入的了解,但这是唯一出现的错误。在详细日志中出现错误之前,我看到的最后一件事是下面的警告(我怀疑与错误有关):
[WARNING] Used undeclared dependencies found:
[WARNING] javax.activation:activation:jar:1.1:test
[WARNING] Unused declared dependencies found:
[WARNING] org.slf4j:slf4j-log4j12:jar:1.7.6:compile
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 27.090 s
[INFO] Finished at: 2017-06-28T10:58:54+08:00
[INFO] Final Memory: 60M/1042M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:2.10:analyze-only (analyze-only) on project functional-tests: Dependency problems found -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute …Run Code Online (Sandbox Code Playgroud) 我正在尝试运行我的selenium java代码来测试网页.但由于网络限制,网页无法加载.当我手动设置代理并在浏览器中点击URL时,它工作正常.现在我需要在运行selenium代码时传递这些代理设置.请帮帮我.
我试过下面的代码,但它仍然显示相同的错误:
Proxy p=new Proxy();
// Set HTTP Port to 7777
p.setHttpProxy("www.abc.com:8080");
// Create desired Capability object
DesiredCapabilities cap=new DesiredCapabilities();
// Pass proxy object p
cap.setCapability(CapabilityType.PROXY, p);
// Open firefox browser
WebDriver driver=new ChromeDriver(cap);
Run Code Online (Sandbox Code Playgroud) 我在Windows中完成了大部分工作,并且设置了一个像我喜欢的好的python27.我最近安装了virtualBox并在其上运行了一个Ubuntu机器,我正在尝试安装PyQt4.我从apt-get安装并更新了所有内容,但是,当我尝试从PyQt4导入时
from PyQt4 import QtCore
Run Code Online (Sandbox Code Playgroud)
我得到一个runtimeError:
RuntimeError: the sip module implements API v9.0 to v9.1 but the PyQt4.QtCore module requires API v8.1
Run Code Online (Sandbox Code Playgroud)
我确信这是一个问题,我将在Windows中拥有知识库,但我的Linux缺乏经验在这里变得更好,我安装了错误的东西.这个错误让我相信我有一个对我的PyQt版本来说过于花哨的SIP版本......任何人都有这方面的经验吗?
编辑:如果我收到错误后再次尝试导入它似乎工作.这样做我获得了版本信息.
cfg.pyqt_version_str
Out[9]: '4.9.3'
cfg.sip_version_str
Out[10]: '4.14.3-snapshot-55188026fe6d'
Run Code Online (Sandbox Code Playgroud)
不确定快照业务的全部内容.
我发现这个答案,但一个看似类似的问题,(因为我是新手到Python)的我不知道如何实现我的这个代码的解决方案(如果是同样的问题,毕竟).
在我的代码中,我有以下部分:
logging.basicConfig(level=logging.DEBUG,
format='%(asctime)s %(name)-12s %(levelname)-8s %(message)s',
filename='C:\\Tests\\TRACE.log',
filemode='a')
console = logging.StreamHandler()
console.setLevel(logging.INFO)
consoleFormatter = logging.Formatter('%(name)-12s: %(levelname)-8s %(message)s')
console.setFormatter(consoleFormatter)
logging.getLogger('').addHandler(console)
localLog = logging.getLogger('text')
Run Code Online (Sandbox Code Playgroud)
有趣的是,它过去工作正常,但在某些时候它开始将这些重复的消息写入控制台.
请问有人给我指点吗?
我在我的项目中使用 Spring、Cucumber 和 Junit。测试@ContextConfiguration运行器带有注释,因此它在运行套件之前创建一个 Spring 上下文。
我希望Spring将Step Definition类实例化为 Spring bean,以便我可以注入我的依赖项并在步骤中使用它们。可以通过将类声明为@Component.
到现在为止还挺好。问题是Cucumber 将再次实例化步骤定义,并且不会使用 Spring 创建的带有注入依赖项的 bean。
让 Cucumber 使用 Spring 实例化的 Step 定义的任何想法?
我的目标是运行 Cucumber 场景,同时使用 Spring 进行对象创建和连接。据我了解(来自一些 Cucumber 书籍),只要路径配置正确,Cucumber 运行程序就应该负责加载应用程序上下文。
例如,如果我有一个如下所示的运行器 Java 类:
@RunWith(Cucumber.class)
@CucumberOptions(features = {"classpath:xxx_features"},
glue = {"com.package.name"})
public class FunctionalDevIT {
}
Run Code Online (Sandbox Code Playgroud)
然后 Cucumber runner 将自动扫描并初始化它找到的所有 bean,这样我就不必手动加载应用程序上下文以及从上下文中一一获取 bean。
目前,为了理解这个概念,我创建了最基本的配置,其中包含三个 Java 类:
Beans 类 - 包含 Bean 的类
@Component
public class BeansClass {
@Bean
public void test1() {
System.out.println("test1!");
}
}
Run Code Online (Sandbox Code Playgroud)主类 - 使用 Beans 类中定义的 beans 的类
@ContextConfiguration("classpath:/cucumber.xml")
public class MainClass {
@Autowired
private BeansClass testclass;
@Before
public void navigate() {
testclass.test1();
}
} …Run Code Online (Sandbox Code Playgroud)任何人都可以建议为什么我无法使用 Maven 运行任何测试。
注意:如果我RunnerTest.java以 Junit 身份运行我的文件,它会正确运行所有场景。只有当我使用 Maven 运行它时,才运行测试。
我错过了任何依赖吗?或者是否有任何冲突发生?请参考我所附的项目结构图像和我的 POM 文件。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.cucumber</groupId>
<artifactId>MavenCucumber_RocketTV</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>MavenCucumber_RocketTV</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-junit4</artifactId>
<version>2.18.1</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>19.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-jvm-deps</artifactId>
<version>1.0.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>2.53.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-firefox-driver</artifactId>
<version>2.53.1</version> …Run Code Online (Sandbox Code Playgroud) 我有一个依赖于某个库的大型项目.其中一个库类暴露了以下方法:
public void until(final Predicate<T> isTrue)
public <V> V until(Function<? super T, V> isTrue) {
Run Code Online (Sandbox Code Playgroud)
在哪里Predicate和Function是:
com.google.common.base.Predicate<T>
com.google.common.base.Function<? super T, V>
Run Code Online (Sandbox Code Playgroud)
在该库的最后一个版本中,上述内容已经更改,并通过弃用(删除)public void until(final Predicate<T> isTrue)方法和修改第二个方法进行了重构,如下所示:
public <V> V until(Function<? super T, V> isTrue)
Run Code Online (Sandbox Code Playgroud)
功能现在在哪里java.util.function.Function<? super T, V>.
据我所知,上述更改已完成,以完全支持Java 8功能,特别是lambda表达式.
现在问我的问题.虽然我可以将所有until使用此方法的已弃用版本的调用转换为新结构,但我担心调用此方法的位置太多.有没有办法可以继续使用旧的(已弃用的)方法,也许可以在其他地方重新声明它或某种类型的东西?任何可以解决这个问题的方法都很乐意接受.
java ×7
cucumber ×4
maven ×2
python ×2
selenium ×2
spring ×2
automation ×1
cucumber-jvm ×1
gherkin ×1
java-8 ×1
jgiven ×1
junit ×1
jython ×1
lambda ×1
logging ×1
proxy ×1
pyqt4 ×1
python-sip ×1
selenium-ide ×1