如何使用Selenium网络驱动程序单击框架中存在的按钮


[image][1]
框架

中存在的按钮,我已经编写了用于切换框架并单击 facebook 按钮的代码,但没有执行单击操作,请给我的 html 代码请帮助我

网页框架

<document>
<html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<body id="social_login" class="plugin">
<!--[if IE]><div id="ie"><![endif]-->
<div id="social_login_frame" class="frame">
<div id="content">
<div id="providers" class="providers providers_unpaginated">
<div id="providers_group_1" class="providers_group">
<div class="providers_block" role="application">
<div class="providers_row">
<div id="provider_facebook" class="provider">
<a id="button_facebook" class="button" href="#" rel="nofollow" title="Login with Facebook" role="button" aria-label="Login with Facebook" aria-haspopup="true">
<div id="name_facebook" class="name">Facebook</div>
</div>
<div id="provider_google" class="provider">
<div id="provider_linkedin" class="provider">
</div>
</div>
</div>
</div>
</div>

  [1]: https://i.stack.imgur.com/jXMDe.png

网络驱动程序代码

driver.findElement(By.xpath("//*[@id='contentagent']/div[2]/‌​ul/li[2]/a")).click(‌​); 
Thread.sleep(1000); 
driver.switchTo().frame(0); 
Thread.sleep(500); 
driver.findElement(By.id("button_facebook")).click();

以下是您需要执行的操作:

  1. 获取父窗口句柄。
  2. 点击链接。
  3. 获取所有窗口句柄。(确认它是框架/iframe(
  4. 切换到您的相框。
  5. 单击元素。
  6. 返回到父窗口。

您可能的代码可能如下所示:

/First Get parent window,means current window handle
    String parentWindow = driver.getWindowHandle();
    System.out.println("Parent Window Title "+driver.getTitle());
    driver.findElement(By.xpath("//*[@id='contentagent']/div[2]/‌​ul/li[2]/a")).click();
    //Frame Handling begins here
    //Get All Tabs or Window handles and iterate using for each loop
    for(String handle:driver.getWindowHandles()) 
    {
        System.out.println(handle);
        driver.switchTo().window(handle);
     }
    //switch to frame using frame name
    driver.switchTo().frame("your_frame_name"); // replace by your frame name
    String childtFrame = driver.getWindowHandle();
    System.out.println("Child Frame Title "+driver.getTitle());
    driver.findElement(By.id("button_facebook")).click();
    //Go back to Parent window
    driver.switchTo().window(parentWindow);

让我知道这是否对您有帮助。

最新更新