2016-06-15 16 views
-2

JavaFX TextFieldがあり、そのテキスト入力を使用してWebページ上で入力値を探したいと思っています。これはコードです:JavaFXテキストフィールドの値をXPath Seleniumに取得する方法

private static TextField ItemColor = new TextField(); 

そして、代わりに、値として「ブリック」の

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

、私はそこにItemColorテキストを取得しようとしています。 ItemColor.getText()をそこに配置しようとしましたが、動作しません。どんな助けもありがとう!どうやら私の上記のコードは十分に完全ではなかったので、

編集します。これは、String color = driver.findElement(By.xpath( "// data-style-name = 'Brick')"))まで機能します。ライン。

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(); 
    } 

さらにコードが、文字列の色 - 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 
+0

エラーが(HTTP [あなたが表示されませんコード]である:// stackoverflowのあなたは、メソッドを呼び出すと、あなたはBy.xpath(..)メソッドに渡す文字列のメソッド呼び出しの結果を連結する必要があります。 com/help/mcve)。 – jewelsea

+0

ありがとう、しかし、上記のコードは正常に動作しますが、ItemColor.getText()を配置するとElement Not Found Exceptionが返されるため、ほぼ確実に答えはありません。エラーを返す(またはこの部分に関連する)これらのセクションに関連するコードはありません – BobT

+0

私はXPathを使ったことはありませんが、完全に野生の推測をして、私は 'ElementNotFoundException'が指定された名前の要素が見つかりませんでした。 –

答えて

0

コード

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

の行は、ちょうどハードコード文字列として"ItemColor.getText()"含みます。 ItemColor.getText()メソッドへの実際の呼び出しはありません。

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

ありがとうございました。これはまさに私が探していたものです。私は今私の間違いを見る。この投稿がナンセンスとして出てしまったら、すみません。 – BobT

関連する問題