我试图点击网页上的值(链接格式(,并从一个单独的文件中读取它。值是从外部文件中正确读取的,但我无法让脚本点击它。第一行代码正确地从外部文件读取值,但第二行应该点击呈现的值。例如,文本文件有一个值X1,网页有一个链接格式的值X1。因此,我们的想法是使用变量valueID点击X1链接,而不仅仅是从页面上读取文本链接。你知道如何实现它或让它与下面的代码一起工作吗?
<pre>
string ValueID = System.IO.File.ReadAllText(@"ValueID.txt");
await _page.ClickAsync("Value=ValueID");
</pre>
以下代码应该可以工作:
string ValueID = System.IO.File.ReadAllText(@"ValueID.txt");
await _page.ClickAsync($"text={ValueID}");
请注意,您在字符串中包含字符串插值运算符,而它应该在它的前面,例如$"text={ValueID}"
而不是"text=${ValueID}"
,但如果由于某种原因,上述操作不起作用,也可以尝试以下操作:
- 从文本文件中读取值时,请确保没有前导或尾随空白字符
- 确保元素的实际文本值不包含任何前导或尾随空白字符
- 元素的整个文本值是否正好等于
ValueID
字符串的值?如果不是,可以考虑使用:has-text()
Playwright伪选择器,例如await _page.ClickAsync($":has-text('{ValueID}')");
,它不仅不区分大小写,而且在子字符串上匹配 - 也许可以尝试使用
href
属性与CSS contains配对,例如await _page.ClickAsync($"[attribute*={ValueID}]");