如何在c#中使用Selenium点击JS链接
本文关键字:Selenium 点击 JS 链接 | 更新日期: 2023-09-27 18:12:52
我是Selenium的新手,并试图用它构建一个项目。我需要学习如何点击一个JS链接。有许多项目按页列出。不幸的是,分页是由JS完成的。下面是一个例子…
<ul class="pagination museo-700">
<li class="first hidden disabled">
<a href="#">First</a>
</li>
<li class="prev disabled">
<a class="arrow" href="#">
<img src="/areas/site/Content/images/page/pagination-prev-arrow.png">
</a>
</li>
<li class="page active">
<a href="#" class="active">1</a>
</li>
<li class="page">
<a href="#">2</a>
</li>
<li class="page">
<a href="#">3</a>
</li>
<li class="page">
<a href="#">4</a>
</li>
<li class="page">
<a href="#">5</a>
</li>
<li class="next">
<a class="arrow" href="#">
<img src="/areas/site/Content/images/page/pagination-next-arrow.png">
</a>
</li>
<li class="last hidden">
<a href="#">Last</a>
</li>
</ul>
我想点击第1页。2。3。4。和5。页上面。请给我一个提示
您可以首先使用CSS选择器定位分页,然后每个链接逐个链接文本:
driver.FindElement(By.CssSelector("ul.pagination"))
.FindElement(By.LinkText("1")).Click();
也可以使用XPath:
driver.FindElement(By.XPath("//a[@href='#'][text()='1']")).Click();
代码没有测试,但我觉得他们应该工作
.page > a:contains("1")
.page > a:contains("2")
.page > a:contains("3")
.page > a:contains("4")
.page > a:contains("5")
或
//li[contains(@class, 'page')]/a[text()='1']