使用selenium使用javascript查找表中的所有主题字段

Finding all the subject fields in a table with javascript using selenium

本文关键字:使用 所有主 字段 selenium javascript 查找      更新时间:2023-09-26

我有一个已发送消息列表,其中我想打印所有消息主题字段。我使用selenium并使用javascript(非JAVA)编写代码。

代码为:

<table class="messages">
    <tbody><tr class="section-heading">
      <th>
        <span class="screenreader-only">Delete</span>
      </th>
        <th>To</th>
        <th>Subject</th>
        <th>Sent</th>
    </tr>
  <tr role="row" id="message-k-s-10043496" tabindex="0" class="message"><td class="mark-for-delete keep-column">
  <div class="mark-container">
    <input type="checkbox" class="select-message" title="message-selection">
  </div>
</td>
<td class="message-metadata to">
  NKPContactMbrSvcs
</td>
<td class="message-metadata bottom">
  <div class="from mobile-only">
    From:  <span class="name">Sherlock Robin</span>
  </div>
  <div class="subject">
    Other Questions and Comments
  </div>
  <div class="from desktop-only">
    From:  <span class="name">Sherlock Robin</span>
  </div>
</td>
<td class="message-metadata keep-column">
  <div class="date-received">4:54 PM</div>
</td>

发送列表的图像

屏幕上最多显示10个列表项。

当你制作了这么多相互关联的变量时,使用JSON将它们混合到同一个变量中可能是个好主意,例如你可能有

function register(username, password) {
Users = Users + 1;
userList['_' + Users] = {
    Username: username,
    password: password,
};

这允许您使用诸如userList之类的东西_1.username访问基于username的变量同样的概念也可以应用于您的问题,即您有一个想要用于识别电子邮件的基本值。就是一个例子

email = {}
email[time] = {
    subject: subject,
    sender: sender,
    recipient: recipient,
    body: body
}

这个代码可能需要修改,你可以把它组合成一个函数来创建

function email(sender, recipient, subject, body) {
    email = {}
    email[time] = {
        subject: subject,
        sender: sender,
        recipient: recipient,
        body: body
    }
}

然后你可以使用

document.getElementById("HTMLid").innerHTML = email.(your time value).subject

用html显示类似的内容

<p id="HTMLid"></p>

消息主题字段看起来像这个

<div class="subject">

因此,您需要的是CSS选择器div.subject。我不使用javascript/selenium,但我认为你想要的是

browser.findElements(webdriver.By.css('div.subject'))

这至少应该为你指明正确的方向。