答えて
使用
を、次の方法の要素を取得する方法がわかりませんmodelframeに切り替える
driver.switchTo().frame("ModelFrameTitle");
または
driver.switchTo().activeElement()
これは
私は両方を試みましたが、これのどれも働いていませんでした。あなたはそれを試してみてください。 –
@ Jasmine.Olivra、あなたは答えを受け入れましたが、同時に "*この仕事はありません"と言いました。それはあなたのために働いているのですか? –
私はpythonで同じことをしていますが、私のステートメントは:driver.switch_to_window(activeElement())....ですが、私はエラーを取得しています:driver.switch_to_window(activeElement())。あなたは何かヒントを教えてくれますか? – engineer
あなたのオブジェクト名作業する&変数が含まれ、このコードを試してみてくださいを働くことを願っています。
Set<String> windowids = driver.getWindowHandles();
Iterator<String> iter= windowids.iterator();
for (int i = 1; i < sh.getRows(); i++)
{
while(iter.hasNext())
{
System.out.println("Main Window ID :"+iter.next());
}
driver.findElement(By.id("lgnLogin_UserName")).clear();
driver.findElement(By.id("lgnLogin_UserName")).sendKeys(sh.getCell(0,
i).getContents());
driver.findElement(By.id("lgnLogin_Password")).clear();
driver.findElement(By.id("lgnLogin_Password")).sendKeys(sh.getCell(1,
i).getContents());
driver.findElement(By.id("lgnLogin_LoginButton")).click();
Thread.sleep(5000L);
windowids = driver.getWindowHandles();
iter= windowids.iterator();
String main_windowID=iter.next();
String tabbed_windowID=iter.next();
System.out.println("Main Window ID :"+main_windowID);
//switch over to pop-up window
Thread.sleep(1000);
driver.switchTo().window(tabbed_windowID);
System.out.println("Pop-up window Title : "+driver.getTitle());
使用しているのはモデルダイアログではなく、別のウィンドウです。
は、このコードを使用します。
private static Object firstHandle;
private static Object lastHandle;
public static void switchToWindowsPopup() {
Set<String> handles = DriverManager.getCurrent().getWindowHandles();
Iterator<String> itr = handles.iterator();
firstHandle = itr.next();
lastHandle = firstHandle;
while (itr.hasNext()) {
lastHandle = itr.next();
}
DriverManager.getCurrent().switchTo().window(lastHandle.toString());
}
public static void switchToMainWindow() {
DriverManager.getCurrent().switchTo().window(firstHandle.toString());
私はそれがあなたのために働く、それを試してみました。
String mainWinHander = webDriver.getWindowHandle();
// code for clicking button to open new window is ommited
//Now the window opened. So here reture the handle with size = 2
Set<String> handles = webDriver.getWindowHandles();
for(String handle : handles)
{
if(!mainWinHander.equals(handle))
{
// Here will block for ever. No exception and timeout!
WebDriver popup = webDriver.switchTo().window(handle);
// do something with popup
popup.close();
}
}
Try the below code. It is working in IE but not in FF22. If
モーダルダイアログ期待がちょうどポップアップ二つのウィンドウ(親の一つとポップアップに1つ)になるだろうそしてちょうど待つと仮定すると、is printed in Console, then Modal dialog is identified and switched.
public class ModalDialog {
public static void main(String[] args) throws InterruptedException {
// TODO Auto-generated method stub
WebDriver driver = new InternetExplorerDriver();
//WebDriver driver = new FirefoxDriver();
driver.get("http://samples.msdn.microsoft.com/workshop/samples/author/dhtml/refs/showModalDialog2.htm");
String parent = driver.getWindowHandle();
WebDriverWait wait = new WebDriverWait(driver, 10);
WebElement push_to_create = wait.until(ExpectedConditions
.elementToBeClickable(By
.cssSelector("input[value='Push To Create']")));
push_to_create.click();
waitForWindow(driver);
switchToModalDialog(driver, parent);
}
public static void waitForWindow(WebDriver driver)
throws InterruptedException {
//wait until number of window handles become 2 or until 6 seconds are completed.
int timecount = 1;
do {
driver.getWindowHandles();
Thread.sleep(200);
timecount++;
if (timecount > 30) {
break;
}
} while (driver.getWindowHandles().size() != 2);
}
public static void switchToModalDialog(WebDriver driver, String parent) {
//Switch to Modal dialog
if (driver.getWindowHandles().size() == 2) {
for (String window : driver.getWindowHandles()) {
if (!window.equals(parent)) {
driver.switchTo().window(window);
System.out.println("Modal dialog found");
break;
}
}
}
}
}
を見つけました2つのウィンドウが現れ、他のウィンドウハンドルを見つけてそれに切り替えます。
WebElement link = // element that will showModalDialog()
// Click on the link, but don't wait for the document to finish
final JavascriptExecutor executor = (JavascriptExecutor) driver;
executor.executeScript(
"var el=arguments[0]; setTimeout(function() { el.click(); }, 100);",
link);
// wait for there to be two windows and choose the one that is
// not the original window
final String parentWindowHandle = driver.getWindowHandle();
new WebDriverWait(driver, 60, 1000)
.until(new Function<WebDriver, Boolean>() {
@Override
public Boolean apply(final WebDriver driver) {
final String[] windowHandles =
driver.getWindowHandles().toArray(new String[0]);
if (windowHandles.length != 2) {
return false;
}
if (windowHandles[0].equals(parentWindowHandle)) {
driver.switchTo().window(windowHandles[1]);
} else {
driver.switchTo().window(windowHandles[0]);
}
return true;
}
});
- 1. Selenium WebDriverをポップアップに切り替えることができません
- 2. Selenium Webdriverを使用してInternet Explorerのnewtab/windowにフォーカスを切り替えることができません
- 3. Selenium webdriverを使用してiframeに切り替えることができません
- 4. Selenium Webdriverを使用してブラウザウィンドウを切り替える
- 5. Javaのselenium webdriverを使用してページタイトルでウィンドウ間を切り替えることはできますか?
- 6. Selenium Web Driver - 動的iframe IDを使用してiframeに切り替えることができません
- 7. Selenium IE Webdriver:jQueryモーダルウィンドウに切り替えることができません
- 8. Webdriver、CSharp、C# - ウィンドウを切り替えることができません。
- 9. WebDriver - FFDriverからChromeDriverまたはIEDriverに切り替えることはできません
- 10. appiumを使用してデータをオンまたはオフに切り替えることができません
- 11. Dozeモードに切り替えることができません
- 12. トランクに切り替えることができません
- 13. Selenium WebDriverを使用して2つのブラウザウィンドウを切り替える
- 14. WinDbgの管理スレッドに切り替えることができません
- 15. SwitchTo()を使用してウィンドウの2番目のフレームに切り替えることができません
- 16. ui5ボタンを切り替えることができません
- 17. CSS:ドロップドロップメニューを切り替えることができません
- 18. ブランチを切り替えることができません
- 19. ブランチを切り替えることができません
- 20. neo4jデータベースを切り替えることができません
- 21. システムを切り替えることができません
- 22. C#とSeleniumでテストを実行する新しいウィンドウに切り替えることができません
- 23. 前のiframeがselenium webdriverで閉じられていないときにiframeに切り替える方法
- 24. Webdriver IOのタブを切り替える
- 25. 与えられたスレッドのタスクを切り替える
- 26. ラジオボタン間で切り替えることができません
- 27. フラグメントを適切に切り替えることができません
- 28. 私のゲームのパネルを切り替えることができません
- 29. Selenium 2でPHP-Webdriverでフレームを切り替える
- 30. PythonでSeleniumを使用してページを切り替える
チェックselenium2.0を使用してモーダルダイアログやポップアップを処理する方法をよりよく理解するために、下記のリンク http://www.thoughtworks-studios.com/twist/2.3/help/how_do_i_handle_popup_in_selenium2.html – Hemanth