java - Selenium - 如何找到链接对象
问题描述
我在使用 Java 在 IE11 中测试的页面上有以下 HTML。
<a href="BCreate.asp?Tab=Batches&View=Batches"><span class="link_bar link_bar_link">Create New</span></a>
如果我尝试通过 linkText 查找,则会收到错误消息:
driver.findElement(By.linkText("Create New")).click();
使用 xpath 时出错(在 IE、Chrome 和 FireFox 中,xpath 可以很好地验证该链接):
driver.findElement(By.xpath("/html/body/div[5]/div/div[1]/table/tbody/tr/td/div/nobr/a[2]/span")).click();
我也尝试按班级查找,但没有运气:
WebElement parentElement = driver.findElement(By.className("link_bar link_bar_link"));
WebElement childElement = parentElement.findElement(By.linkText("Create New"));
childElement.click();
任何想法如何找到并单击此链接?
解决方案
要查找文本为Create New的链接对象,您可以使用以下任一解决方案:
选择器:
WebElement elem = driver.findElement(By.cssSelector("a[href*='View=Batches']>span.link_bar.link_bar_link"));
xpath
:WebElement elem = driver.findElement(By.xpath("//a[contains(@href,'View=Batches')]/span[@class='link_bar link_bar_link' and contains(.,'Create New')]"));
推荐阅读
- centos - 无法连接到 openstack 服务列表
- c# - 在 BeginLifetimeScope 配置中使用 RegisterInstance 会导致内存泄漏
- reactjs - 输入在 HOC 组件内失去焦点
- python - 关于如何调整我的代码以将正确的表作为数据框返回有什么建议吗?
- python - PyCharm 上无法安装多个包
- amazon-s3 - 如何修复 AWS S3 上损坏的 delta 湖表
- php - foreach 循环中的 SimpleXMLElement 一直嵌套在 PHP 中
- flutter - 无法使用颤振 image_editor_pro 加载图像
- python - 如何将 json 转换为数据框并忽略顶部信息?
- c# - WPF 用户控件在实例化后不会更新