Сохраните абсолютный URL для теста селена, используя JavaScript - PullRequest
0 голосов
/ 06 сентября 2011

У меня есть html-файл, в котором хранится файл absoluteUrl, содержимое которого выглядит так:

<html>
<head><title>Root URL variable</title></head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">Root URL variable</td></tr>
</thead><tbody>

<tr>
    <td>store</td>
    <td>javascript{window.location;}</td>
    <td>rootUrl</td>
</tr>

</tbody></table> 
</body>
</html>

Проблема возникает, когда я пытаюсь заменить window.location на var loc = window.location; Я получаю эту ошибку

Ошибка выполнения команды.Пожалуйста, поищите в форуме по адресу http://clearspace.openqa.org подробности об ошибках в окне журнала.Сообщение об ошибке: eval (match 1 ) не определен

Это первая проблема.Вторая проблема заключается в том, что я хотел бы получить абсолютный путь, используя javascript, и попытаться сохранить его как переменную rootUrl.Любые предложения по решению будут полезны (Если первая проблема решена, я планирую попробовать решение, подобное здесь Невиллом Бонавиа, то есть

function getAbsolutePath() {
var loc = window.location;
var pathName = loc.pathname.substring(0, loc.pathname.lastIndexOf('/') + 1);
return loc.href.substring(0, loc.href.length - ((loc.pathname + loc.search + loc.hash).length - pathName.length));

}

1 Ответ

0 голосов
/ 06 сентября 2011

Когда Selenium работает this относится к объекту Selenium, что означает, что у вас не будет прямого доступа к window или document.

Чтобы получить прямой доступ, вам нужно будет сделать this.browserbot.getUserWindow(). Это возвращает вам объект window на странице, а затем вы можете совершать обычные звонки.

1010 *, например *

var window = this.browserbot.getUserWindow();
return window.location;
...