如何将JavaFX文本字段值转换为XPath Selenium

时间:2016-06-15 17:46:24

标签: java selenium javafx

所以我有一个JavaFX TextField,我希望使用该文本输入在网页上找到输入的值。这是代码:

private static TextField ItemColor = new TextField();

然后,

 String color = driver.findElement(By.xpath("//a[@data-style-name='Brick']")).getAttribute("href");
    driver.get(color);
而不是' Brick'作为值,我试图在那里获得ItemColor文本。 我已经尝试将ItemColor.getText()放在那里,但它不起作用。任何帮助表示赞赏!

编辑,因为上面的代码显然不够完整。它一直有效,直到String color = driver.findElement(By.xpath(" // a [@ data-style-name =' Brick']"))。getAttribute(&# 34; HREF&#34);线。

public static void supremeBot()
{   
    System.setProperty("webdriver.chrome.driver", "C:\\Program Files\\chromedriver_win32\\chromedriver.exe");
    WebDriver driver = new ChromeDriver();

    String url = Category.getText();
    driver.get(url);
    while(driver.findElements(By.linkText(Item.getText())).isEmpty())
        driver.navigate().refresh();

    double starttime = (double)System.currentTimeMillis() / 1000;
    String productlink = driver.findElement(By.linkText(Item.getText())).getAttribute("href");
    driver.get(productlink); 

    String color = driver.findElement(By.xpath("//a[@data-style-name='Brick']")).getAttribute("href");
    driver.get(color);

    WebElement selectsize = driver.findElement(By.name("size"));
    List<WebElement> sizeoptions = selectsize.findElements(By.tagName("option"));
    for (WebElement option : sizeoptions)
    {
        if(option.getText().equals(Size.getText()))
            option.click();
    }

然后更多代码,但错误发生在String颜色 - XPath行。

String color = driver.findElement(By.xpath("//a[@data-style-name='Brick']")).getAttribute("href"); THIS WORKS

String color = driver.findElement(By.xpath("//a[@data-style-name=ItemColor.getText()]")).getAttribute("href"); THIS DOESN'T WORK

String color = driver.findElement(By.xpath("//a[@data-style-name='ItemColor.getText()']")).getAttribute("href"); THIS DOESN'T WORK

1 个答案:

答案 0 :(得分:0)

代码行

String color = driver.findElement(By.xpath("//a[@data-style-name='ItemColor.getText()']"))
    .getAttribute("href"); 

只包含"ItemColor.getText()"作为硬编码字符串;没有实际调用ItemColor.getText()方法。您需要调用该方法并将传递给By.xpath(..)方法的字符串中的方法调用的结果连接起来:

String color = driver.findElement(By.xpath("//a[@data-style-name='" + ItemColor.getText()+ "']"))
    .getAttribute("href");