Xpath-我需要在XPATH中使用一个变量

时间:2018-12-16 23:00:26

标签: javascript node.js selenium selenium-webdriver xpath

我正在使用Selenium-webdriver,我需要通过“文本”选择一个元素。因此,我正在使用xpath。但是,值会有所不同,因此我使用了一个变量。请告诉我如何解决此问题,或者做一个更好的方法。

代码:

const { Builder, By, Key, until } = require('selenium-webdriver');
let category = null;
category = "jackets";
async function main() {
    let driver = new Builder().forBrowser('chrome').build();

    driver.get('https://supremenewyork.com');

    driver.findElement(By.className('shop_link')).click();
    let element0 = await driver.wait(until.elementLocated(By.xpath("//*[contains(@href,'http://www.supremenewyork.com/shop/all')]", 10000)));
    await element0.click();
    //bugged code start below
    let element1 = await driver.wait(until.elementLocated(By.xpath("//*[contains(text(),"+category+")]", 10000)));
    await element1.click();
    //bugged code end
}

main();

错误是:

WebDriverError: unknown error: Failed to execute 'getComputedStyle' on 'Window': parameter 1 is not of type 'Element'.

1 个答案:

答案 0 :(得分:2)

您在XPath表达式中的文本值周围缺少引号

let element1 = await driver.wait(until.elementLocated(By.xpath("//*[contains(text(),'"+category+"')]", 10000)));