2016-07-08 12 views
1

私のシナリオでは、1つのWeb要素を右クリックして2番目のオプションを選択する必要があります。新しく作成された子の場所への名前(例Default(1))。 私の目標は、デフォルト名をカスタマイズした名前に変更することです。つまり、デフォルト(1)を子(1)に変更します。Selenium webdriverで選択した右クリックオプションの名前を入力する方法

右クリックして2番目のオプションを選択できましたが、子の名前をカスタマイズした名前に変更できませんでした。私のスクリプトコードがどのように見える

<ul class="rtUL"> 
    <li class="rtLI rtFirst rtLast"> 
     <div class="rtTop"> 
     <ul class="rtUL"> 
      <li class="rtLI rtLast"> 
       <div class="rtBot rtSelected"> 
        <span class="rtIn">Default (1)</span> 
       </div> 
      </li> 
     </ul> 
    </li> 
</ul> 

htmlコードは次のようになります

WebElement rootLocation = driver.findElement(By.xpath("//div[@id='Testlocation']//span[contains(text(),'RL')]")); 
Actions action = new Actions(driver); 
action.contextClick(RL).build().perform(); 
WebElement elementOpen = driver.findElement(By.linkText("Create Child")); 
elementOpen.click(); 

助けてください。

+0

あなたは右クリックの後に来るメニューのHTMLスニペットを投稿することができますか?私は、そのロケータの問題のためだけでは動作していないと思う。 – Santoshsarma

答えて

0

あなたは以下のようにJavascriptExecutorを使用して成功し、右クリックした後、カスタマイズされた名前にデフォルト名を変更することができます -

WebDriverWait wait = new WebDriverWait(driver, 10); 
WebElement el = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//span[contains(text(), 'Default (1)')]"))); 
((JavascriptExecutor)driver).executeScript("arguments[0].textContent = arguments[1]", el, "Child (1)") 

が右にDefault (1)から新しく作成された子のテキストを変更するためにクリックし、それが成功した後に動作しますホープChild (1) ... :)

+0

Gaurav、私はurコードを使用し、デフォルト(1)をChild(1)に置き換えます(スクリプトの実行時に変更されているのがわかります)が、ページのリフレッシュ時にDefault(1)として表示されます。私はビルドして実行しようとしましたが、成功しませんでした。コードはアクションアクション=新しいアクション(ドライバ)です。 \t \t WebDriverWait wait =新しいWebDriverWait(driver、10); \t \t WebElement el1 = driver.findElement(By.xpath( "span(contains(text()、 'Default(1)'))");\t \t((JavascriptExecutor)ドライバ).executeScript( "arguments [0] .textContent = arguments [1]"、el1、 "Child(1)"); \t \t action.click(el1).build()。perform(); – reena

+0

@reenaはい私はテスト目的のためだけに実行時にその変更を知っており、永久的には効きません...あなたは変更を永久的に有効にしたいですか? –

+0

@reenaあなたは私にステップを教えてください。どうすればデフォルトの名前を手動で変更するのですか? –

0

私はfrndの助けを借りて私の問題の解決策を得ました。

WebElement newLoc1 =driver.findElement(By.xpath("//span[contains(.,'Default (1)')]")); 
    Actions mAction = new Actions(driver); 
    mAction.moveToElement(newLoc1); 
    mAction.contextClick(newLoc1).build().perform();// This will do right click 
    driver.findElement(By.xpath("//span[contains(.,'Click to Rename')]")).click();//This will select the renaming option from the right click options 
    driver.findElement(By.xpath("//input[@value='Default (1)']")).sendKeys(Keys.HOME,Keys.chord(Keys.SHIFT,Keys.END),"newloc");//This will delete the Default name ie Default (1) and change the name to a new name ie newloc 

`

関連する問題