繁体   English   中英

在C#中使用Selenium的元素更改Web中表格单元格中的值

[英]Change the value in a cell of a table in Web Element using Selenium in C#

我使用此代码从网页中读取表格中的每个单元格。

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。(示例 - [Number | 1] 到 [Number | 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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM