python - pyhon中selenium的send_keys不起作用
问题描述
我正在使用 python3,并想使用 python 包 selenium 在 Instagram 中发送消息。该代码以前工作得很好。今天大多数时候 send_keys() 不起作用。我增加了 sleep() 时间以确保这不是网速问题。仍然,它不起作用。任何想法?或任何其他在框中发送文本的方法(我使用的是 python)?
这是代码:
webdriver.get('https://www.instagram.com/explore/tags/'+ hashtag_list[tag] + '/')
sleep(5)
check='//*[@id="react-root"]/section/main/article/div[2]/div/div[%d]/div[%d]/a/div' %(i,x)
sleep(10)
#'//*[@id=\"react-root\"]/section/main/article/div[1]/div/div/div[1]/div[%s]/a/div' % (x)
first_thumbnail = webdriver.find_element_by_xpath(check)
first_thumbnail.click()
sleep(10)
webdriver.find_element_by_xpath('/html/body/div[3]/div[2]/div/article/div[2]/section[1]/span[2]/button/span').click()
sleep(10)
comment_box = webdriver.find_element_by_xpath('/html/body/div[3]/div[2]/div/article/div[2]/section[3]/div/form/textarea')
sleep(20)
comment_box.send_keys("Hi") # this line does not work
sleep(10)
webdriver.find_element_by_xpath('/html/body/div[3]/div[2]/div/article/div[2]/section[3]/div/form/button').click()
sleep(10)
except:
print("Oops!")
sleep(10)
continue
解决方案
您是否通过打印检查以确保 comment_box 实际上是一个有效的网络元素?只是为了确保选择器是正确的?因为它应该正常工作,但也许 Instagram 正在以某种方式阻止它。
推荐阅读
- sql - 根据特定列值删除重复行
- javascript - 由于 css 样式表链接,Bootstrap Modal 出现在屏幕右侧
- php - Docker 与 Laravel
- python - 我应该如何在项目中组织 mysql.connector
- bootstrap-vue - 如何在 bootstrapVue 中使一列 3 张卡片的高度匹配?
- html - 去除隐形空间
- php - 使用不同键的PHP多文件上传
- laravel - 在 boot() laravel 背包 crud 包中使用 $this->authorizeResource
- python - QPainter 点大小为 1 像素且无法更改
- arrays - 访问字典中的数组(swift)