找到正确的输入标签,以便在instagram上上传图像



我正在尝试使用Python和Selenium上传图像到instagram…我需要模拟一个电话,并通过输入标签中的图像,它的工作,因为我可以上传一个个人资料图片,但唯一的问题是,我找不到正确的输入标签上传图像到我的饲料。我找到的唯一一个是上传新头像的。

你能帮我找到输入标签吗?

下面是我使用的代码:
def upload(self, image, text):
driver.get("https://www.instagram.com/")
#find input field
upload_btn = driver.find_element(By.XPATH, "needed xpath")
time.sleep(2)
#send image
upload_btn.send_keys("C:\Users\brendPycharmProjectsClimateCoinBot\PP2.jpg") #full path of the file which is to be uploaded

如果你能帮我的话,那就太好了:)

使用.send_keys()方法上传文件的元素通常可以使用以下定位器定位:

upload_btn = driver.find_element(By.XPATH, "//input[@type='file']")

你应该在

后面加上wait/delay
driver.get("https://www.instagram.com/")

之前
upload_btn = driver.find_element(By.XPATH, "needed xpath")

使页面在访问此元素之前完全加载。
你的代码可以像这样:

def upload(self, image, text):
driver.get("https://www.instagram.com/")
time.sleep(2)
#find input field
upload_btn = driver.find_element(By.XPATH, "//input[@type='file']")
#send image        
upload_btn.send_keys("C:\Users\brendPycharmProjectsClimateCoinBot\PP2.jpg") 

但建议使用显式等待而不是硬编码暂停。

所以,我在一个instagram脚本硒工作,我在麻烦像你一样。但我找到了你要的密码。看一下:

这就是故事(发送照片)代码:

<button class="JdY43"> <span class="ctM9u _2dbep " role="link" tabindex="-1" style="width: 56px; height: 56px;">
<img alt="" class="_6q-tv" crossorigin="anonymous" data-testid="user-avatar" draggable="false" src="https://instagram.fgig4-1.fna.fbcdn.net/v/t51.2885-19/s150x150/271673104_907632683286365_8637941351902776951_n.jpg?_nc_ht=instagram.fgig4-.fna.fbcdn.net&amp;_nc_cat=105&amp;_nc_ohc=nZGpq1e3_awAX_pI_zX&amp;edm=AIQHJ4wBAAAA&amp;ccb=7-4&amp;oh=00_AT-nr4lxSToGQqIQCitUKJQhDXaMCePqmSxEy77CzjlTjA&amp;oe=6212095C&amp;_nc_sid=7b02f1"></span>
<div class="XdXBI">Seu story</div> <div class="TiuNS">
<svg aria-label="Ícone de mais" class="_8-yf5 " color="#0095f6" fill="#0095f6" height="16" role="img" viewBox="0 0 24 24" width="16">
<path d="M12.001.504a11.5 11.5 0 1011.5 11.5 11.513 11.513 0 00-11.5-11.5zm5 12.5h-4v4a1 1 0 01-2 0v-4h-4a1 1 0 110-2h4v-4a1 1 0 112 0v4h4a1 1 0 010 2z">
</path></svg></div> 
<form enctype="multipart/form-data" method="POST" role="presentation"><!-- look here -->
<input accept="image/jpeg" class="tb_sK" type="file"></form></button><!-- look here -->

实际上Instagram页面有以下结构:按钮标签>(很多不重要的事情)>形式比;input>(关闭按钮标签)

这是一个隐藏照片输入的聪明方法。我浪费了太多时间去找它。

所以,你需要知道:有4个输入标签,如上面列出的。您可能需要使用如下的XPATH来选择它们:

//* [@ id ="react-root"/部分/主/部分/div [1]/div [2]/div/div/div/按钮/表单/输入

这是第一个问题。第二个是输入带有显示属性,设置为"none!important"你可以在控制台中注入javaScript来修复它(我做过,并把它变成了"inline")。

但是,我不能从这里继续,因为当我将文件路径发送到输入时,什么也没有发生。

所以,如果不发送路径,我使用"。submit()"在send_keys之后,我得到以下消息:

"This page could not be loaded. 
If cookies are active in your browser or it
is in Private, try enabling cookies or deactivate 
Private Mode and perform the action again."

那是我所有的东西。我可以使用Selenium + Pyautogui上传照片,我有一个脚本,当我点击按钮并设置路径时,我使用它。但如果你在自己的电脑上,它就没有用了,如果它被选中,它会在其他窗口中写入。如果你愿意,我们可以谈谈。虽然我有这个解决方案,但我真的想要一个完整的selenium脚本。

我想为你的研究做出贡献,所以我希望你能回答它是否对你有用,或者对你的工作有贡献,因为我想继续构建我的机器人。:)

相关内容

  • 没有找到相关文章

最新更新