如果找到的元素是'text',则显式等待不起作用

时间:2016-01-27 13:16:43

标签: java selenium selenium-webdriver wait

如果找到的元素是'text',则显式等待无效。但是如果驱动程序执行某些操作,即在文本框中输入文本或单击webelement等,它工作正常。

var crypto = require("crypto");
var fs = require("fs");

var URL_VALID_DURATION = 1000 * 10;//for 10 seconds
var expiry = Math.floor(((new Date).getTime() + URL_VALID_DURATION) / 1000);
var key = 'the_target_file';
var bucketName = 'bucket_name';
var accessId = 'my_access_id';
var stringPolicy = "GET\n" + "\n" + "\n" + expiry + "\n" + '/' + bucketName + '/' + key;
var base64Policy = Buffer(stringPolicy, "utf-8").toString("base64");   
var privateKey = fs.readFileSync("gcs.pem","utf8");
var signature = encodeURIComponent(crypto.createSign('sha256').update(stringPolicy).sign(privateKey,"base64"));   
var signedUrl = "https://" + bucketName + ".commondatastorage.googleapis.com/" + key +"?GoogleAccessId=" + accessId + "&Expires=" + expiry + "&Signature=" + signature;

console.log(signedUrl);

如果我的定位器是文本的话,上面的代码不起作用,也就是说,如果我想检查stackoverflow中问题的“标题”是否在40秒内可见。尽管标题显示小于40秒,但是等待40秒那。但是,如果定位器是标题文本框,它可以正常工作。请让我知道如何解决这个问题。

1 个答案:

答案 0 :(得分:1)

你使用等待的方式完全不同于它应该被使用。

try {
    WebDriverWait wait = new WebDriverWait(webDriver, timeinseconds1);
    element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("myDynamicElement")));
} catch (TimeOutException toe) {
  //handle the page not loading
}
//from now on continue the code as synchronous knowing that the page is loaded