如何在selenium PHP单元中切换到iframe
我想写一个测试来登录一个站点。问题是,当我点击登录时,会出现一个弹出窗口,它是一个iframe。现在我编写代码在窗口之间切换。但我在不同的iframe中切换。我不知道这段代码是从哪里来的。我使用Facebook编写的selenium WebDriver如何在selenium PHP单元中切换到iframe,php,selenium,iframe,phpunit,Php,Selenium,Iframe,Phpunit,我想写一个测试来登录一个站点。问题是,当我点击登录时,会出现一个弹出窗口,它是一个iframe。现在我编写代码在窗口之间切换。但我在不同的iframe中切换。我不知道这段代码是从哪里来的。我使用Facebook编写的selenium WebDriver <?php class TitleTest extends PHPUnit_Framework_TestCase { protected $webDriver; public function setUp() { $capabil
<?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
}
}
?>
要与帧或iframe内的元素交互,请先切换到该帧
$my_frame = 'id_or_name';
$driver->switchTo()->frame($my_frame);
... do your stuff here and switch back afterwards ...
$driver->switchTo()->defaultContent();
请看维基 我们使用$this->frame(0),对于phpunit selenium框架,我不确定Facebook库,但您可以像这样搜索类似的内容