Selenium调用函数Java Scipt

时间:2018-03-26 11:50:36

标签: javascript selenium selenium-webdriver

我想在selenium看到之后调用一个函数并获取页面上链接的文本,

driver.get("https://www.guerrillamail.com/");
driver.findElement(By.id('inbox-id')).getText().then(function(gm){
address = gm + "@sharklasers.com";
var output = new Buffer(address, 'hex');
console.log(output);
mailExistsCheck();
var query = driver.wait(until.elementLocated(By.xpath("//*[contains(text(), 'confirm@ksmobile.com ')]")));
query.click();
var query2 = driver.wait(until.elementLocated(By.partialLinkText("iptlogin")));
query2.getText();
var target = query2.getText();

aftter selenium发现这个driver.wait(until.elementLocated(By.partialLinkText("iptlogin")));我想启动一个名为activateMail(target)的函数。

我需要做一些与此相似的事情

var link = target.includes("iptlogin");

if (link = true) {
activateMail(target);
console.log("True");
}

2 个答案:

答案 0 :(得分:1)

@Devin,如果您想使用JavascriptExecutor js = (JavascriptExecutor) driver; js.executeScript(" var link = target.includes('iptlogin'); if (link == true) { activateMail(target); console.log('True'); } "); 方法运行带有selenium web驱动程序的Javascript,请使用以下语法:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cellIdentifier : String = "periodCell";
        var cell : periodCell! = tableView.dequeueReusableCell(withIdentifier: cellIdentifier) as! periodCell ;
        if (cell == nil) {
            cell = periodCell.init(style: UITableViewCellStyle.default, reuseIdentifier: cellIdentifier);
        }           
        let periodData = arrPeriod.object(at: indexPath.row) as? FinalRoutineDataModel

        cell.lblPeriod.text = periodData!.period
        cell.lblTeacher.text = periodData!.reacher
        cell.lblStartTime.text = periodDa!ta.start_time
        cell.lblEndTime.text = periodData!.end_time
        cell.lblSubject.text = periodData!.subject

        return cell;
    }

答案 1 :(得分:0)

您将使用以下内容

driver.wait(until.elementLocated(By.partialLinkText("iptlogin"))).then(
 () => driver.executeScript("activateMail()")
)

或者你甚至可以像下面那样使用它

driver.wait(until.elementLocated(By.partialLinkText("iptlogin")))

driver.isElementPresent(by.partialLinkText('iptlogin')).then(
 () => driver.executeScript("activateMail()")
)

第二个确保元素存在然后只执行该函数。第一个人不保证