如何解决在 C# 中使用 Selenium 更改 Web 元素中表格单元格中的值
我使用此代码从网页中读取表格中的每个单元格。
IList<IWebElement> all = driver.FindElements(By.ClassName("a-keyvalue"));
if (all.Count > 0)
{
String[] allText = new String[all.Count];
int i = 0;
string test = "";
foreach (IWebElement element in all)
{
//writeraa.WriteLine(element.Text);
allText[i++] = element.Text;
test = allText[i - 1];
}
string[] aa = test.Replace("\n","").Split('\r');
string JI = string.Join("",aa).Replace("\r\n","").Replace("\r","").Replace("\n","");
使用此代码,我可以读取其中包含值的 2 行。我想将数字行中的值“1”更改为 500。(示例 - [数字 | 1] 到 [数字 | 500])
您能否帮助我了解如何访问数字单元格并相应地设置值。
提前致谢。
HTML 代码
<div class="content_view_list">
<div>
<h3></h3>
<table class="a-keyvalue">
<tbody>
<tr>
<th>
<div class="tableHeader">
Item Name
</div>
</th>
<td>
<div>
Wolike Powerful Aluminium Alloy Rubber Tubing Camouflage Bow Catapult Outdoor Hunting Fishing Slingshot
</div>
</td>
</tr>
<tr>
<th>
<div class="tableHeader">
Number
</div>
</th>
<td>
<div class="tableDetails">
3
</div>
</td>
</tr>
<tr>
<th>
<div class="tableHeader">
Defect Body
</div>
</th>
<td>
<div>
CR-<span style="background-color:rgb(255,130,67)">DAMAGE</span>D_BY_CARRIER test
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
解决方法
由于“数字”单元格不是文本输入,您可以让 Selenium 执行 JavaScript,这将更改该单元格中的文本。
var executor = (IJavaScriptExecutor)driver;
var number = 500;
executor.ExecuteScript($"arguments[0].innerHTML = '{number}';",element);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。