我的方案是我必须右键单击一个web元素并选择第二个选项,结果创建一个新的子位置,默认情况下,应用程序为新创建的子位置提供一个名称(例如Default(1))。 我的目标是将默认名称更改为自定义名称,即将Default(1)更改为Child(1)。
我已成功右键单击,然后选择第二个选项,但无法将子位置重命名为自定义名称。
html代码如下:
<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>
我的脚本代码如下:
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 :(得分: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)
后,它将起作用...:)
答案 1 :(得分: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
`