У меня есть следующий скрипт ajax (прототип js), но он публикует только часть текста.
Selenium.prototype.doSaveCopyPaste = function(locator) {
var element = this.page().findElement(locator);
var text = jQuery(element).text();
console.log(text);
var ajax = new Ajax.Request('http://copypaste.test', {
method: 'post',
parameters: 'report=' + text,
processData: false,
onSuccess: function(transport) {
var response = transport.responseText || "no response text";
alert("Success! \n\n" + response);
},
onFailure: function() { alert('Something went wrong...'); }
});
console.log(ajax);
}
когда я выведу text
в консоли я получаю все что через locator
пример
------------------------------------------------------------
<br>
Header 1
<br>
------------------------------------------------------------
<br>
Header 2
<br>
Sub Heading: A Name
<br>
Sub Heading 2: Another Name
<br>
Sub Heading 3: data here
<br>
etc etc for about 3000 characters
Итак, я понимаю, что у меня нет строки здесь, и это может быть причиной того, что у меня возникли проблемы? .. так как я могу отправить все данные в мой скрипт PHP …
if ($_POST['report']) {
echo $_POST['report'];
}
Вам нужно закодировать вашу строку перед тем, как опубликовать ее:
...
parameters: 'report=' + encodeURIComponent(text);
...
Теперь символы в вашей строке могут сделать ее недействительной, разбить ее на несколько полей значений ключа и т. Д.
Других решений пока нет …