将Jenkins作为Window服务运行时未识别的元素

时间:2018-03-21 20:23:53

标签: java selenium jenkins selenium-webdriver windows-services

我之前使用过命令提示符使用过Jenkins。由于我对运行Jenkins的服务器进行了一些组策略更改,因此我开始运行Jenkins作为Windows服务(允许服务与桌面交互)。

我正在尝试使用以下代码识别用户ID字段的Web应用程序,但无法执行此操作。

当我在eclipse中运行相同的代码时,它工作正常。 当我通过停止Jenkins服务并开始使用命令提示符运行相同的代码时,它工作正常。

但是不要在Jenkins中运行Windows服务。有没有人经历过这样的事情?什么是解决方案

WebDriverWait wait = new WebDriverWait(driver,20);

wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath(".//*[@id='user-id']"))

这是Jenkins作为服务运行的问题吗?

这是HTML

<div class="l-main">
<div class="container">
<div class="l-content">
<div class="row">
<div class="row">
<div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
<div class="form-item row">
<label class="col-md-3 col-sm-2 col-xs-12" for="user-id"> User ID </label>
<input id="user-id" class="col-md-6 col-sm-10 col-xs-12" placeholder="User ID" name="UserID" value="" size="23" maxlength="62" type="text"/>
</div>

2 个答案:

答案 0 :(得分:0)

根据 HTML ,您已共享而非通用xpath xpath(“.//* [@ id ='user-id']”)< / strong>您可以使用更具体的xpath作为:

wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//input[@id='user-id']"));

您还可以使用更精细的xpath

wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//input[@class='col-md-6 col-sm-10 col-xs-12' and @id='user-id']"));

答案 1 :(得分:0)

我还尝试将Jenkins作为Windows服务运行,并选中了允许服务与桌面交互。 此问题是由Session 0隔离引起的。This stackoverflow question是关于类似主题的,可以为您提供帮助。