在Python中使用Selenium将文本发送到文本框



我正在尝试使用Selenium在Python中创建一个脚本,以打开社交媒体页面(Tumblr(,输入用户登录凭据,并使用随机语句生成器发布"引用"帖子。我可以使用网站上的xpath(driver.find_element_by_xpath(输入凭据并选择创建帖子图标,但当尝试使用xpath 为帖子输入文本时

//*[@id="redpop_iframePostForms"]/div[3]/div/div/div/div/div[2]/div[2]/div/div[2]/div/div[3]/div[1]/div/div[1]/p

使用

self.driver.find_element_by_xpath('//*[@id="redpop_iframePostForms"]/div[3]/div/div/div/div/div[2]/div[2]/div/div[2]/div/div[3]/div[1]/div/div[1]/p').send_keys("It worked!!")

我收到错误

Message: no such element: Unable to locate element: {"method":"xpath","selector":"//div[@id="redpop_iframePostForms"]/div[3]/div/div/div/div/div[2]/div[2]/div/div[2]/div/div[1]/div/div/div[1]"}

我尝试过在div列表中使用其他div类,但找不到正确的div类。我也尝试过使用CSS选择器与代码

driver.find_elements_by_css_seletor("div[@aria-label='Quote']").send_keys("It worked!!!")

但是提供了错误

Message: invalid selector: An invalid or illegal selector was specified

从这里往哪里走有方向吗?

谢谢!

对于没有此类元素异常

根据您的xpath,我可以猜测该元素存在于iframe中。首先切换到那个框架,然后找到要与之交互的元素。

对于无效的选择器消息

使用css选择器定位元素的通用语法为:

tagname[attributeName=‘attributeValue’]

您不需要将@与attributeName一起使用。此外,您正在使用aria label='Quote'获取DOM中存在的所有div元素,并发送不正确的键。若您想对元素执行任何操作,您需要将它们放在列表中,然后对其进行迭代。希望这能有所帮助。

相关内容

  • 没有找到相关文章

最新更新