如何在元素中选择文本,复制它,然后将其粘贴到页面的其他位置?Selenium-webdriver-python;

2024-09-30 12:24:16 发布

您现在位置:Python中文网/ 问答频道 /正文

[编辑图片][1]

[网址连结][2]

[图片一][3]

[图片二][4]

因此,这是一个论坛,客户发布问题,寻求答案。问题由第一张海报的客户提出。我要做的是找到第一张海报的名字,在这里是用户“davidbrigden”,然后复制他们的名字。下一步,在按下回复(显示在第二张ss中)后,我想将我从第一张海报复制的名字粘贴到回复框中,让他们知道我是专门回复他们的。然而,我目前还不知道如何做到这一点。谢谢你的帮助

选择回复选项的我的代码:

reply_buttons = driver.find_elements_by_xpath('//button[@title="Reply"]')
reply_buttons[0].click()

Tags: 答案用户编辑客户粘贴选项图片名字
2条回答

您可以使用此css_选择器从帖子标题中查找用户的用户名:

'.PostUser .username'

因此,您可以获得所有帖子的用户名,如下所示

answer_names= driver.find_elements_by_css_selector('.PostUser .username')

第一个回答的用户名是

first_answer_user_name = answer_names[0].text

replay comment textarea元素通过以下css_选择器定位

`#composer textarea`

因此,您可以通过以下方式发送文本:

driver.find_element_by_css_selector('#composer textarea').send_keys(first_answer_user_name)

UPD:
总的来说,它将如下所示:

time.sleep(5)
answer_names= driver.find_elements_by_css_selector('.PostUser .username')
first_answer_user_name = answer_names[0].text
reply_buttons = driver.find_elements_by_xpath('//button[@title="Reply"]')
reply_buttons[0].click()
time.sleep(3)
driver.find_element_by_css_selector('#composer textarea').send_keys(first_answer_user_name)

不要忘记添加等待/延迟。
为了简化,我添加了睡眠,应该使用预期条件

您可以获得页面上所有用户的姓名,如下所示:

elements = driver.find_elements_by_css_selector('.PostUser-badges.badges')
names = []
for element in elements:
    names.append(element.text)

然后,如果您想使用“davidbrigden”名称进行回复,请使用

reply_field_element.send_keys(names[0])

相关问题 更多 >

    热门问题