Я хочу перейти к определенному URL и не хочу каждый раз жестко кодировать значение. Есть ли способ позвонить «SELENIUM_BASEURL» вместо этого, чтобы сделать это.
$ This-> URL (»http://www.google.com«);
phpunit.xml …
<php>
<!-- define some constants to use in our test classes -->
<const name="SELENIUM_HOST" value="127.0.0.1"/>
<const name="SELENIUM_BASEURL" value="http://www.google.com"/>
</php>
<testsuites>
<testsuite name="SeleniumSetup">
<directory>tests/integration/</directory>
</testsuite>
</testsuites>
Да, вы можете использовать SimpleXML
в этом случае:
$xml = simplexml_load_file('phpunit.xml');
$element = $xml->xpath('//php/const[@name="SELENIUM_BASEURL"]');
$selenium_baseurl = $element[0]->attributes()->value;
echo $selenium_baseurl; // http://www.google.com
Или используя DOMDocument
:
$dom = new DOMDocument();
$dom->load('phpunit.xml');
$xpath = new DOMXpath($dom);
$selenium_baseurl = $xpath->evaluate('string(//php/const[@name="SELENIUM_BASEURL"]/@value)');
echo $selenium_baseurl; // http://www.google.com
Затем:
$this->url($seleniium_baseurl);
Вы определили константы в своем XML, так что вы можете получить к ним доступ обычным способом:
$this->url(SELENIUM_BASEURL);