2017-07-13 19 views
0

愚かな間違いを私に許してください、私はまだアマチュアです また、コードを実行するとドロップダウン選択部分が動作しません ここにありますコードSelenium WebDriver:私はドロップダウンリスト要素を自動化できません

package com.thinksys.dd; 

import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.WebElement; 
import org.openqa.selenium.firefox.FirefoxDriver; 
import org.openqa.selenium.support.ui.Select; 

public class Autodd 
{ 
    public static void main(String[] args) 
    { 

     System.setProperty("webdriver.gecko.driver","C:\\Users\\thinksysuser\\Downloads\\geckodriver-v0.18.0-win64\\geckodriver.exe"); 
     WebDriver driver= new FirefoxDriver(); 
     driver.get("http://newtours.demoaut.com/mercuryregister.php?%20osCsid=e6b6a3a86207b80bb2d346a613c378da"); 

     WebElement e = driver.findElement(By.name("country")); 
     Select index = new Select(e); 
     index.selectByVisibleText("PORTUGAL"); 
    } 
} 
+3

ポルトガルの後にhtml domの中にスペースがあります –

+0

スペースでも動作しません。 –

+0

値で選択しようとしましたか? –

答えて

0

Firefoxのブラウザが最新のバージョンにアップデートされていないため、問題なく実行されています。

0

あなたのコードを以下のコードに置き換えてください。これはうまくいくはずです。

index.selectByVisibleText("PORTUGAL "); 
+0

いいえ....まだ動作していません –

+0

@akashdeepSingh - 何がエラーですか? – Kapil

+0

エラーはありません –

-2

xpathロケータを使用してこのコードを試してください。

注: -waitの数秒前に、コードの下に実行し、その代わりabsolute XPathを使用しての、relative XPathを使用して提供します。

new Select(driver.findElement(By.xpath("//select[@name='country']"))).selectByVisibleText("PORTUGAL"); 

OR

new Select(driver.findElement(By.xpath("//select[@name='country']"))).selectByValue("167"); 
+0

ええ、私はすでにそれを試みました。まだ動作しません –

+0

上記のコードを実行する前に、数秒の 'wait'を提供してください。上記のコードは私の側で正常に動作しているためです。 –

+0

私は暗黙的で明示的な待ちを使用していました.....今はブラウザベースの問題だと思っています –

0

ここでの実際の問題は、選択したクラスまたはその方法ではありません。私たちはここで暗黙の待ちを欠いています。ドライバを起動して暗黙の待機を追加するだけで、コードはうまく動作します。

System.setProperty("webdriver.gecko.driver", "/home/santhoshkumar/Softwares/Selenium/drivers/geckodriver"); 
WebDriver driver = new FirefoxDriver(); 
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 
driver.manage().window().maximize(); 
driver.get("http://newtours.demoaut.com/mercuryregister.php?%20osCsid=e6b6a3a86207b80bb2d346a613c378da"); 

WebElement e = driver.findElement(By.name("country")); 
Select index = new Select(e); 
index.selectByVisibleText("PORTUGAL"); 

これが役に立ちます。ありがとう。

+0

私は暗黙的で明示的な待機を使用しています.....今は、ブラウザベースの問題だと思います。他のシステムで試したので、Thread.sleep()で正常に動作しています。 –

関連する問題