instagram 配置文件中第一个 post 的 xpath 不起作用(python、selenium、chromedriver)
xpath for first post on instagram profile not working (python, selenium, chromedriver)
我试图在导航到任何 Instagram 个人资料后点击第一个 post。我查看了多个 Instagram 用户个人资料中第一个 post 的 xpath
,它们似乎都一样。这是梅西的个人资料示例。
这是我尝试使用带有 python 的 chromedriver 来点击梅西的第一个 post。我已经导航到 https://www.instagram.com/leomessi/
,这是梅西的个人资料。
first_post_elem_click = driver.find_element_by_path('//*[@id="react-root"]/section/main/div/div[4]/article/div[1]/div/div[1]/div[1]/a/div').click()
但是,第一个 post 没有被点击。非常感谢任何帮助。
您应该使用相对 xpath,而不是使用绝对 xpath。
您可以使用以下命令单击第一个 post(也应用了显式等待):
WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.XPATH, "(//div[@class='Nnq7C weEfm']//img)[1]"))).click()
您需要添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
我刚刚在 Firefox 中检查过这个:$x('//*[@id="react-root"]/section/main/div/descendant::article/descendant::a[1]')
。我想这应该能满足您的需求。
请检查以下解决方案,
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
Browser = webdriver.Chrome(executable_path=r"chromedriver.exe")
Browser.get("https://www.instagram.com/leomessi/")
WebDriverWait(Browser, 20).until(EC.element_to_be_clickable((By.XPATH, "//body//div[contains(@class,'_2z6nI')]//div//div//div[1]//div[1]//a[1]//div[1]//div[2]"))).click()
我试图在导航到任何 Instagram 个人资料后点击第一个 post。我查看了多个 Instagram 用户个人资料中第一个 post 的 xpath
,它们似乎都一样。这是梅西的个人资料示例。
这是我尝试使用带有 python 的 chromedriver 来点击梅西的第一个 post。我已经导航到 https://www.instagram.com/leomessi/
,这是梅西的个人资料。
first_post_elem_click = driver.find_element_by_path('//*[@id="react-root"]/section/main/div/div[4]/article/div[1]/div/div[1]/div[1]/a/div').click()
但是,第一个 post 没有被点击。非常感谢任何帮助。
您应该使用相对 xpath,而不是使用绝对 xpath。
您可以使用以下命令单击第一个 post(也应用了显式等待):
WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.XPATH, "(//div[@class='Nnq7C weEfm']//img)[1]"))).click()
您需要添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
我刚刚在 Firefox 中检查过这个:$x('//*[@id="react-root"]/section/main/div/descendant::article/descendant::a[1]')
。我想这应该能满足您的需求。
请检查以下解决方案,
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
Browser = webdriver.Chrome(executable_path=r"chromedriver.exe")
Browser.get("https://www.instagram.com/leomessi/")
WebDriverWait(Browser, 20).until(EC.element_to_be_clickable((By.XPATH, "//body//div[contains(@class,'_2z6nI')]//div//div//div[1]//div[1]//a[1]//div[1]//div[2]"))).click()