我之前使用过命令提示符使用过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>
答案 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是关于类似主题的,可以为您提供帮助。