当前位置: 首页 > 知识库问答 >
问题:

使用Java硒编写xpath有困难

闻人望
2023-03-14

在这一页上https://www.bestbuy.ca/en-ca/category/laptops-macbooks/20352(这是笔记本电脑结果页面,其中列出了许多笔记本电脑,我正在尝试获取这台电脑)

WebElement--“HP 15.6”笔记本电脑-银色(Intel Core i3-1005G1/256GB SSD/8GB RAM/Windows 10),使用xpath,下面是我的xpath:

//div[contains(text(),'HP 15.6" Laptop - Silver (Intel Core i3-1005G1/256GB SSD/8GB RAM/Windows 10)')]

此xpath正确标识了元素,但当我在eclipse中粘贴此xpath时,它会在

xpath("div[包含(text(),'HP 15.6\"笔记本电脑-Silver(英特尔酷睿i3-1005G1/256GB SSD/8GB RAM/Windows 10)')]"))

这就是我的代码抛出元素not found异常的原因。谁能帮我解决这个问题。

共有2个答案

越嘉树
2023-03-14

您可以使用以下xpath来定位web元素(python):

wait = WebDriverWait(driver, 20)
wait.until(EC.element_to_be_clickable((By.XPATH, "//div[contains(text(),'HP 15.6" Laptop - Silver (Intel Core i3-1005G1')]")))

注意:请添加以下导入到您的解决方案

from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait

如果你使用java,那么你可以使用下面的代码来定位你的元素:

driver.findElement(By.xpath(//div[contains(text(),'HP 15.6" Laptop - Silver (Intel Core i3-1005G1')]));
王经赋
2023-03-14

15.6\“eclipse中显示的内容是正确的。因此,它将为您转义嵌入的引号。否则,它将在eclipse IDE上给出语法错误。由于页面需要时间加载元素,因此失败。

导入WebDriverWait(),等待元素可选择(),然后单击。

new WebDriverWait(driver, 30).until(ExpectedConditions.elementToBeClickable(By.xpath("//div[contains(text(),'HP 15.6\" Laptop - Silver (Intel Core i3-1005G1/256GB SSD/8GB RAM/Windows 10)')]"))).click();

 类似资料:
  • 问题内容: 我有这个HTML代码: 而且我必须选择带有text 的标签所标识的WebElement 。我尝试一些解决方案,例如: 但是每个人都给我: 正确的语法是什么?有人能帮我吗? 问题答案: 您没有正确的XPath语法。您需要在要匹配的文本属性值周围加上引号。尝试:

  • 我正在删除一个网络应用程序,我需要找到一个特定的元素,但我不能用我的xpath找到它。这是我试图找到元素的HTML代码 我成功地找到了它,但是当我注意到id是自动生成的时,我陷入了困境。我试图解决这个问题,找到包含文字“名字”的标签,然后找到兄弟姐妹,但什么都没有。这是我的xpath:

  • 我是Selenium的新手,需要能够使用属性和文本对以下元素进行xpath。 我正在使用 但我还需要它带有属性,以便将其缩小到单个元素。

  • 你能用这个网站做个例子吗?我想忽略有评论的帖子,只点击没有评论的帖子。 我试过了,但有一个错误。 我想点击一个还没有任何评论的帖子。我想跳过有评论的帖子。我还是个初学者。救救我。

  • 正在尝试在Selenium WebDriver上编写自动测试。具有带有CSS定位器的页面上Webelement: 此外,还应采用以下工作方法聚焦该元素: 问题是如何做到这一点,但要使用xpath定位器。元素的xpath是//textarea[@id='FeedbackMessage']。 琐碎的用法 不工作

  • 这完全是一个新手的问题——所以我道歉。我正在拓展视野,潜入Java。 我试图编译一些从Tika依赖项导入的java类。 我想如果我把我的java文件放在和tika-app-1.6.jar目录相同的目录下,编译器会找到它需要的东西。它返回了19个它找不到的符号错误。 所以,我尝试过:javactest.java, javac-classpath"test.java, javac-classpath"