Я использую php-webdriver (facebook) и жду 90 секунд веб-страницы, где name = «mdn» находится по следующему коду. Это хорошо работает, но после этого я хотел бы получить текст name = «mdn». Скрытое поле формы имеет значение, но для $ number значение отсутствует. Кто-нибудь знает, что не так?
test.php:
$driver->wait(90, 10000)->until(
WebDriverExpectedCondition::presenceOfAllElementsLocatedBy(
WebDriverBy::name('mdn')
)
);
$number= $driver->findElement(WebDriverBy::name('mdn'))->getText();
Страница:
<div id="main content" align="center" class="mainCon">
<div class="mainBG1">
<table width="900" cellspacing="0" cellpadding="0">
<tr>
<td width="650" valign="top">
<div class="paddingT20 paddingB20" style="font-family:'Oswald', sans-serif; font-weight:normal; font-size:35px">xxxxxxx Completed</div>
<form method="post" action="xxxxxxxxxxxxxxxxxxxxxx" target="_blank">
<input type="hidden" name="trans_id" value="1234567" />
<input type="hidden" name="mdn" value="1234567890" />
<input type="hidden" name="bal" value="" />
<input type="hidden" name="exp" value="" />
<input type="hidden" name="note" value="" />
<table width="40%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td colspan="2" class="dv-R"> </td>
</tr>
<tr>
<td width="40%" class="dv-L">MDN</td>
<td width="60%" class="dv-R">6142086840</td>
</tr>
<tr>
<td width="32%" class="dv-L"> </td>
<td width="68%" class="dv-R"><input type="image" value="Print" src="images/xxxxx.png" /></td>
</tr>
</table>
<div class="InfoGr paddingT20 paddingB20"></div><br/>
</p>
</form>
<div class="paddingB40"></div>
</td>
<td valign="top" bgcolor="#e2e2e2"> </td>
</tr>
</table>
</div>
</div>
Ты можешь использовать GetAttribute (), потому что ваша страница имеет значение атрибута, а не текст.
например
$number= $driver->findElement(WebDriverBy::name('mdn'))->getAttribute('value');
Других решений пока нет …