我正在使用这个在网站上运行的脚本,但我想将其修改为另一种用途。是否可以使用beforeEach
函数在页面上查找文本(而不是链接中的文本)?
以下是<a href="http://somelink.com"><div id ="rectangle"><div id="iconx"></div><p class="rec-text"> LINK TEXT </p></div></a>
:
waitForKeyElements
一旦该文字“你已经失控了”。出现,我希望点击功能点击包含与div
中的文字不同的文字的链接。我无法使用此功能,因为此文本仅在轮流时出现。我想触发包含“再次开始”文本的链接。这个链接总是存在,所以我试图解决它,或者我只是使用工作脚本。
以下是我要修改的工作脚本:
<div id="action_pane" style="text-align: center;">You have run out of turns
这是我的版本不起作用:
$action_pane
答案 0 :(得分:1)
使用DOM元素的innerHTML不是存储系统状态的最佳方法。如果我是你,我会完全采取另一种方法。
在你的游戏中,当你不在转弯时,你想要显示文字“你已经用完了”并重新开始。所以直接(而不是间接)明确表达。
function takeTurn() {
turnsLeft -= 1;
if (turnsLeft <= 0) {
showGameOverMessage();
startAgain();
}
}
这将使您的代码更容易理解。
startAgain
可以在用户单击时触发,也可以从应用程序逻辑中调用。使操作成为一等公民,而不是用户互动或副作用。
答案 1 :(得分:0)
您的代码中包含以下行:
waitForKeyElements (
"a:contains('You have run out of turns.')",
clickit
);
但是之前你说过你正在观看的元素是:
<div id="action_pane" style="text-align: center;">You have run out of turns
这是div
,而不是a
元素。因此,您的选择器应更改为div:contains('You have run out of turns')
。