我想单击包含某些文本的链接。我试过使用X-Path表达式,但不起作用。我正在测试的应用程序是“多页面应用程序”,因此我不确定是否生成了新页面。
HTML:
<a class="text-major ev-pick-this-event" href="/cgi-bin/ncommerce3/SEGetEventInfo?ticketCode=GS%3AAMTX%3AHUSKERS%3ASLP2%3A&linkID=BQFN80-AMTX&shopperContext=&pc=&caller=&appCode=&groupCode=SLP&cgc=&dataAccId=129&locale=en_US&siteId=ev_BQFN80-AMTX">HUSKERS - SLP2 - Ranges</a>
我尝试过的事情:
DislplayEventList.js
class DisplayEventListPage {
async clickEventListLink(page) {
const slp2ItemLink = await page.$x(
'//a[contains(., "HUSKERS - SLP2 - Ranges")]'
);
await slp2ItemLink.click();
}
}
module.exports = DisplayEventListPage;
navigate.test.js
const path = require("path");
const config = require("config");
const url = config.get("url");
const DisplayGroupListPage = require("../pageObjects/DisplayGroupList");
const DisplayEventListPage = require("../pageObjects/DisplayEventList");
let groupListPage = new DisplayGroupListPage();
let eventListPage = new DisplayEventListPage();
describe("Test Navigation", () => {
beforeAll(async () => {
await page.goto(url);
await page.screenshot({ path: "groupListPage.png" });
await groupListPage.clickGroupName(page);
await page.screenshot({ path: "eventListPage.png" });
await page.waitFor(3000);
const pageURL = await page.url();
console.log(pageURL);
await eventListPage.clickEventListLink(page);
});
it('should be titled "evenue 1.5 | Online Ticket Office | HUSKERS - SLP2 - Ranges', async () => {
await expect(page.title()).resolves.toMatch(
"evenue 1.5 | Online Ticket Office | HUSKERS - SLP2 - Ranges"
);
});
});
我收到的错误:
TypeError: slp2ItemLink.click is not a function
答案 0 :(得分:0)
尝试使用包含选择器:
setTimeout(()=>{
$("a:contains('HUSKERS - SLP2 - Ranges')").trigger("click");
console.log("go");
}
, 3000);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a class="text-major ev-pick-this-event" href="/cgi-bin/ncommerce3/SEGetEventInfo?ticketCode=GS%3AAMTX%3AHUSKERS%3ASLP2%3A&linkID=BQFN80-AMTX&shopperContext=&pc=&caller=&appCode=&groupCode=SLP&cgc=&dataAccId=129&locale=en_US&siteId=ev_BQFN80-AMTX" target="_blank">HUSKERS - SLP2 - Ranges</a>
请考虑到您的用户首先应与页面进行交互,否则单击触发器将被忽略。