英文:
Identifying the first element on the page
问题
我使用Python与Selenium,并使用以下内容来识别我的页面上的2个网页元素:
driver.find_element(By.XPATH("//a[contains(@href, '/checkout')]"))
我正在尝试使用以下方法选择/识别第一个:
"//a[contains(@href, '/checkout')][0]"
由于某种原因它不起作用。请帮忙。谢谢。
英文:
I use python with selenium and I am using the following to identify the 2 web elements on my page:
driver.find_element(By.XPATH("//a[contains(@href, '/checkout')]"))
I am trying to select/identify the first one using:
"//a[contains(@href, '/checkout')][0]"
For some reason it does not work. Please help. Thanks
答案1
得分: 1
- 要识别第一个匹配的元素,您可以使用find_elements方法,然后访问返回的列表的第一个元素。
elements = driver.find_elements(By.XPATH, "//a[contains(@href, '/checkout')]")
first_element = elements[0]
- 或者,您可以使用find_element方法与find_elements定位策略来在一行中实现相同的结果:
first_element = driver.find_element(By.XPATH, "(//a[contains(@href, '/checkout')])[1]")
英文:
- To identify the first matching element, you can use the find_elements method instead, and then access the first element of the returned list.
> elements = driver.find_elements(By.XPATH, "//a[contains(@href,
> '/checkout')]")
>first_element = elements[0]
- Alternatively, you can use the find_element method with the find_elements locator strategy to achieve the same result in a single line:
> first_element = driver.find_element(By.XPATH, "(//a[contains(@href,
> '/checkout')])[1]")
答案2
得分: 0
更改为:
这将定位从DOM树的顶部找到的匹配节点的第一个出现。
(//a[contains(@href, '/checkout')])[1]
代码应如下所示:
driver.find_element(By.XPATH("(//a[contains(@href, '/checkout')])[1]"))
英文:
Change this:
//a[contains(@href, '/checkout')][0]
To: This will locate the first occurrence of the matching node which it finds from the top of the DOM tree.
(//a[contains(@href, '/checkout')])[1]
Code should look like:
driver.find_element(By.XPATH("(//a[contains(@href, '/checkout')])[1]"))
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论