Selenium 和 Salesforce Automation 从我的帐户页面单击特定帐户

Selenium and Salesforce Automation Click a specific account from my accounts page

我正在尝试使用 salesforce 和 selenium 创建一个自动化脚本来记录通话。我已经能够让我的脚本加载网站、登录并导航到 "my accounts" 页面。在该页面上,它包含所有帐户的 table。我试图点击一个特定的帐户,但我无法让 Selenium 找到该元素。 table 中的每个元素如下所示:

<tr class="dataRow even" onmouseover="if (typeof(hiOn) != 'undefined')  {hiOn(this);}" onblur="if (typeof(hiOff) != 'undefined'){hiOff(this);}" onfocus="if (typeof(hiOn) != 'undefined'){hiOn(this);}" onmouseout="if (typeof(hiOff) != 'undefined'){hiOff(this);}">
<td>
<input id="001U000000nyG6oIAE" type="checkbox" onchange="com.vod309.myaccounts.addOrRemoveAcct(this)">
<input id="isPerson" type="hidden" value="false">
</td>
<td class="dataCell">
<a target="_top" href="https://na12.salesforce.com/001U000000nyG6oIAE">CAP AREA SPCH CENTER</a>
</td>
</tr>

谁能帮我让我的脚本正确点击 link 转到 "CAP AREA SPCH CENTER"?

我已经试过了:

driver.findElement(By.linkText("CAP AREA SPCH CENTER")).click();
driver.findElement(By.xpath("//table/tbody/tr[55]/td[2]/a").click();

还有很多其他的,但由于某种原因,它没有正确找到 link。我想这可能是因为 link 在 table 中?如有任何帮助,我们将不胜感激。

你试过了吗find_element_by_link_text

elem = driver.find_element_by_link_text("CAP AREA SPCH CENTER") 
elem.click()

您应该实现 WebDriverWait 以等待元素可见并启用点击,如下所示:-

WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.elementToBeClickable(By.linkText("CAP AREA SPCH CENTER"))).click();

或者

wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//a[contains(.,'CAP AREA SPCH CENTER')]"))).click();

已编辑 :- 您需要先切换 Iframe,然后按如下方式查找元素 :-

driver.switchTo().frame("itarget");

WebDriverWait wait = new WebDriverWait(driver, 10);
    wait.until(ExpectedConditions.elementToBeClickable(By.linkText("CAP AREA SPCH CENTER"))).click();

希望对您有所帮助..:)