python小小白哟 发表于 2023-8-12 11:17:05

selenium中如何用XPATH选择最后一个标签元素呢?

如题所示:selenium中如何用XPATH选择最后一个标签元素呢?

比如我在百度搜索打印机,然后选择最后一个列表元素打开。



代码如下:

import time
from selenium import webdriver
from selenium.webdriver.common.by import By

browser = webdriver.Edge()
browser.get("https://www.baidu.com/")
b = browser.find_element(By.ID,"kw")
b.send_keys("打印机")
b.submit()
time.sleep(5)
c = browser.find_element(By.XPATH,"//div[@id='content_left']//h3[@class='c-title t t tts-title']/a")
c.click()
time.sleep(5)

结果并不能获取,请问该如何修改代码呢?

学习编程中的Ben 发表于 2023-8-12 11:17:16

问题描述:
在使用Selenium中使用XPath选择最后一个标签元素的情况下,希望能够修改代码以正确选择并点击最后一个列表元素。

解决方案:
要选择最后一个标签元素,你可以使用XPath的last()函数。在你的情况下,你可以通过修改XPath来选择最后一个标签元素。

修改后的代码:
import time
from selenium import webdriver
from selenium.webdriver.common.by import By

browser = webdriver.Edge()
browser.get(\https://www.baidu.com/\)

search_input = browser.find_element(By.ID, \kw\)
search_input.send_keys(\打印机\)
search_input.submit()

time.sleep(5)

# 修改XPath以选择最后一个列表元素
last_result_xpath = \//div[@id='content_left']//h3[@class='c-title t']/a\
last_result_link = browser.find_element(By.XPATH, last_result_xpath)
last_result_link.click()

time.sleep(5)

browser.quit()


在这个修改后的代码中,XPath被修改为//div[@id='content_left']//h3[@class='c-title t']/a,其中部分表示选择最后一个匹配的元素。这样,你就可以选择并点击最后一个列表元素。

希望这个解决方案能够帮助你正确选择并点击最后一个列表元素。

isdkz 发表于 2023-8-12 11:17:16

要选择最后一个标签元素,你可以使用XPath的 last() 函数。在你的代码中,你可以将XPath表达式修改为 "(//div[@id='content_left']//h3[@class='c-title t t tts-title']/a)" 。

修改后的代码如下:

import time
from selenium import webdriver
from selenium.webdriver.common.by import By

browser = webdriver.Edge()
browser.get("https://www.baidu.com/")
b = browser.find_element(By.ID,"kw")
b.send_keys("打印机")
b.submit()
time.sleep(5)
c = browser.find_element(By.XPATH,"(//div[@id='content_left']//h3[@class='c-title t t tts-title']/a)")
c.click()
time.sleep(5)


这样就可以选择最后一个匹配的 <a> 标签元素并进行点击操作了。

陶远航 发表于 2023-8-12 11:17:45

要选择最后一个标签元素,可以使用XPath的last()函数。以下是修改后的代码示例:

import time
from selenium import webdriver
from selenium.webdriver.common.by import By

browser = webdriver.Edge()
browser.get("https://www.baidu.com/")

b = browser.find_element(By.ID, "kw")
b.send_keys("打印机")
b.submit()

time.sleep(5)

# 修改这里的XPath,添加以选择最后一个元素
c = browser.find_element(By.XPATH, "//div[@id='content_left']//h3[@class='c-title t t tts-title']/a")
c.click()

time.sleep(5)


在XPath中,表达式选择XPath所匹配的所有元素中的最后一个元素。将此表达式添加到你的XPath中,即可选择最后一个列表元素进行点击操作。

希望这对你有帮助!如果还有其他问题,请随时提问。
如果问题已经解决,请设置最佳答案

python小小白哟 发表于 2023-8-12 11:26:38

陶远航 发表于 2023-8-12 11:17
要选择最后一个标签元素,可以使用XPath的last()函数。以下是修改后的代码示例:




代码行不通

python小小白哟 发表于 2023-8-12 11:28:10

isdkz 发表于 2023-8-12 11:17
要选择最后一个标签元素,你可以使用XPath的 last() 函数。在你的代码中,你可以将XPath表达式修改为 "(//d ...

那如何访问末第二个a链接呢?

歌者文明清理员 发表于 2023-8-12 11:31:06

python小小白哟 发表于 2023-8-12 11:28
那如何访问末第二个a链接呢?

用requests,百度的连接不是真实链接

ba21 发表于 2023-8-12 12:11:15

歌者文明清理员 发表于 2023-8-12 11:31
用requests,百度的连接不是真实链接

论坛暂时得靠你了,能回花点时间回下。
这样搞下去真不得了。
页: [1]
查看完整版本: selenium中如何用XPATH选择最后一个标签元素呢?