Я использую этот скрипт, который работает на сайте, но я хотел его изменить для другого использования. Можно ли использовать функцию waitForKeyElements
для поиска текста на странице (а не текста в ссылке)?waitForKeyElements, используемый с .click()
Вот div
:
<div id="action_pane" style="text-align: center;">You have run out of turns
После того, как этот текст "Вы исчерпали поворотами." появляется, я хочу, чтобы функция click щелкнула ссылку, содержащую текст, который отличается от текста, найденного в $action_pane
. Я не могу использовать это, поскольку этот текст появляется только тогда, когда он не работает. Я хочу вызвать щелчок по ссылке, содержащей текст «Начать снова». Эта ссылка всегда существует, поэтому я пытаюсь ее обойти или просто использовать рабочий скрипт.
Вот рабочий сценарий, который я хочу изменить:
function clickit (jNode) {
var clickEvent = document.createEvent ('MouseEvents');
clickEvent.initEvent ('click', true, true);
jNode[0].dispatchEvent (clickEvent);
}
waitForKeyElements (
"a:contains('Restart')",
clickit
);
Это моя версия, которая не работает:
function clickit() {
$("a:contains('Start Again')").click();
}
waitForKeyElements (
"a:contains('You have run out of turns.')",
clickit
);
Было бы полезно включить элемент, который имеет текст «Начать снова». Ваш код ищет элемент 'a', который содержит« Start Again », поэтому, если это не правильный тип элемента, это может быть причиной отказа. – whrrgarbl
Я сделал то, что работает, но интервал, в течение которого текст «Вы исчерпали очередь» не является точным, поэтому существует задержка, поскольку я устанавливаю интервал выше ожидаемого // setInterval (function() { $ ("a : содержит («Начать снова») »). click(); }, 150000); – Dazza
На самом деле, я думаю, что неправильно прочитал, на какой элемент вы пытались посмотреть, пожалуйста, см. Мой ответ. Но я согласен с предложением @ thedeeno о том, что сохранение состояния в переменной, а не просмотр текстовых элементов для изменения, имеет смысл для игры. – whrrgarbl