找不到带有 document.querySelector 的标签 link
Can't find atag link with document.querySelector
我试图找到一个 link,其中包含:ng-click="showModal()"
并且具有 innerText:1122334455
我尝试使用下面的代码,但没有找到 link(atag
)。我不确定使用 document.querySelector
的代码行中可能存在什么问题? (那一行就是问题所在)
HTML atag 所在位置的代码,如下所示:
<td class="col-reservation-id text-center">
<span class="overflow-text">
<a class="highlight" ng-click="showModal()">1122334455</a>
</span>
</td>
C#/javascript代码找到上面的atag
public async Task<bool> clicklink(ChromiumWebBrowser browser)
{
String atag = "document.querySelector('" + "a[ng-click=" + '"' + "showModal()" + '"' + "].innerText === '1122334455'" + "')";
String clickinputscript = atag + ".focus(); " +
atag + ".click(); ";
bool success = false;
try
{
success = (await browser.GetMainFrame().EvaluateScriptAsync(clickinputscript)).Success;
}
catch (Exception ex) { success = false; }
return success;
}
可能是因为ng-click的html属性不对,尝试通过id或者class找:)
您不能将 JS 代码放在 document.querySelector
的查询字符串中。
你必须在选择之后做。为此,请改用 document.querySelectorAll
和 for
循环:
for(const element of document.querySelectorAll('a[ng-click="showModal()"]').values()){
if(element.innerText === '1122334455'){
element.focus()
element.click()
break
}
};
或者,转换为 C#-land:
String clickinputscript = "for(const element of document.querySelectorAll('a[ng-click=" + '"showModal()"'+"]').values()){if(element.innerText === '1122334455'){element.focus();element.click();break;};};";
我试图找到一个 link,其中包含:ng-click="showModal()"
并且具有 innerText:1122334455
我尝试使用下面的代码,但没有找到 link(atag
)。我不确定使用 document.querySelector
的代码行中可能存在什么问题? (那一行就是问题所在)
HTML atag 所在位置的代码,如下所示:
<td class="col-reservation-id text-center">
<span class="overflow-text">
<a class="highlight" ng-click="showModal()">1122334455</a>
</span>
</td>
C#/javascript代码找到上面的atag
public async Task<bool> clicklink(ChromiumWebBrowser browser)
{
String atag = "document.querySelector('" + "a[ng-click=" + '"' + "showModal()" + '"' + "].innerText === '1122334455'" + "')";
String clickinputscript = atag + ".focus(); " +
atag + ".click(); ";
bool success = false;
try
{
success = (await browser.GetMainFrame().EvaluateScriptAsync(clickinputscript)).Success;
}
catch (Exception ex) { success = false; }
return success;
}
可能是因为ng-click的html属性不对,尝试通过id或者class找:)
您不能将 JS 代码放在 document.querySelector
的查询字符串中。
你必须在选择之后做。为此,请改用 document.querySelectorAll
和 for
循环:
for(const element of document.querySelectorAll('a[ng-click="showModal()"]').values()){
if(element.innerText === '1122334455'){
element.focus()
element.click()
break
}
};
或者,转换为 C#-land:
String clickinputscript = "for(const element of document.querySelectorAll('a[ng-click=" + '"showModal()"'+"]').values()){if(element.innerText === '1122334455'){element.focus();element.click();break;};};";