【问题标题】:How to switch to iframe in selenium PHP unit如何在 selenium PHP 单元中切换到 iframe
【发布时间】:2015-02-11 22:32:51
【问题描述】:

我想编写测试以登录网站。问题是当我点击登录时会出现一个弹出窗口,它是一个 iframe。现在我编写代码在窗口之间切换。但我切换到不同的 iframe。我不知道它来自哪里 这是一个sn-p的代码。我使用 Facebook 编写的 selenium WebDriver。

<?php
class TitleTest extends PHPUnit_Framework_TestCase {

protected $webDriver;
public function setUp()
{
    $capabilities = array(\WebDriverCapabilityType::BROWSER_NAME => 'firefox');
    $this->webDriver = RemoteWebDriver::create('http://ip-address:4444/wd/hub', $capabilities);
}
protected $url = 'https://mywebsite.net';

public function testAfterLoginBudliTitle()
{
    // Sell used Login and account page's title assert
    $this->webDriver->get($this->url);
    $this->webDriver->manage()->window()->maximize();
    $link = $this->webDriver->findElement(WebDriverBy::xpath('/html/body/div[3]/header/div[2]/div/ul/li[2]/a'));
    sleep(2);        
    $link->click(); //click on login
    sleep(3);
    $iframe = $this->webDriver->findElement(WebDriverBy::tagName('iframe'));

    $frameName = $iframe->getAttribute('name');
    //Switch the driver to the iframe
    $this->webDriver->switchTo()->frame($frameName);
    $this->assertContains('demo', $frameName); // Here I get the different iframe name
 }  
}
?>

【问题讨论】:

  • 我们使用 $this->frame(0); ,对于 phpunit-selenium 框架,我不确定 Facebook 库,但你可以像这样搜索类似

标签: php selenium iframe phpunit


【解决方案1】:

要与框架或 iframe 内的元素交互,请先切换到该框架!

$my_frame = 'id_or_name';
$driver->switchTo()->frame($my_frame);

... do your stuff here and switch back afterwards ...

$driver->switchTo()->defaultContent();

查看维基。 https://github.com/facebook/php-webdriver/wiki/Alert,-Window-Tab,-frame-iframe-and-active-element#frame-iframe

【讨论】:

    猜你喜欢
    • 2014-06-11
    • 1970-01-01
    • 2021-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多