【发布时间】:2017-08-17 13:13:54
【问题描述】:
我是量角器、打字稿、javascript 的新手。所以,我不知道我到底做错了什么。
webelement 只是返回一个对象,我无法执行单击链接的操作。 我怎样才能得到链接文本?我尝试使用其他形式,如 id、css、标记名,但由于某种原因,该对象在某些时候会丢失。有人遇到这种问题吗?
//html (which is inside a frame)
<div class="menuLabel" id="menuLabel1"> </div>
<div class="submenubox" id="submenu1"> </div>
<div class="menuLabel" id="menuLabel2">
<table>
<tbody>
<tr>
<td> </td>
<td class="menuText">
<nobr>
<a onmouseover="menuShow(event,'2')" href="javascript:void(null)" class="ml">Example Main Menu</a>
</nobr>
</td>
</tr>
</tbody>
</table>
</div>
<div class="submenubox" id="submenu2">
<table border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td class="anything">
<table border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td>
<table border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr> </tr>
<tr>
<td class="secNav">
<a onmouseover="subMenuShow(event, '2', '1')" ; hoverText='Example Sub Menu' target href="trade/new.action">...</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
//Page object file
export class PageObject {
public mainMenuLink: WebElement = element(By.linkText('Example Main Menu'));
public subMenuLink: WebElement = element(By.linkText('Example Sub Menu'));
async gettingMenu(): Promise<void> {
//Mouse over the Main Menu, once this actions is done, a table with submenu appears
await browser.actions().mouseMove(this.mainMenuLink);
//Clicking on the submenu link
await browser.actions().mouseMove(this.subMenuLink);
await browser.actions().click(this.subMenuLink);
}
}
【问题讨论】:
标签: javascript selenium typescript protractor automated-tests