python - 相同的按钮,不同的文本。 Selenium python

标签 python python-2.7 selenium selenium-webdriver selenium-chromedriver

我有两种类型的按钮,具有相同的类、id 等,但有两点不同。他们所做的 Action 和文字。一个有“邀请”文本,另一个有“消息”。当它是“邀请”时我想做点什么,当它是“消息”时我想做点别的事情。你知道我必须用什么吗?一个如果?或者我必须使用webDriverWait

这是 HTML 代码。

<button aria-label="Invite" class="button m5"> Invite </button>

<button aria-label="Message" class="button m5"> Message </button>

我尝试过类似的方法,但不起作用。你知道为什么吗?

buttons=driver.find_elements_by_class_name("button m5")
for but in (buttons):
fetch_text=but.text
if "Invite" in fetch_text:
###do somethin
else: ###do somethin

最佳答案

由于两个元素的 className 相同,因此您可以先使用 className 获取文本,然后将 if 条件放在文本上,然后进行相应操作。

例如,在您的情况下,它会是这样的:

fetch_element_text = driver.find_element_by_class_name("button m5").text

if "Invite" in fetch_element_text:
     # Operate according to the Invite button 

elif "Message" in fetch_element_text:
     # Operate according to the Message button

更新答案:
根据您更新的问题,请尝试以下 xpath 来获取循环中的元素:

buttons=driver.find_elements_by_xpath("//button[@class='button m5']")
print(len(buttons))
for button in buttons:
    fetch_element_text = button.text

现在您可以设置与上面提到的相同的 if else 条件。

关于python - 相同的按钮,不同的文本。 Selenium python ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55080162/

相关文章:

python - 向 numpy 矩阵添加维度

python - 我的程序运行良好,除了一件事 :

python - 使用 python Raspberry Pi 3 从串行设备检索数据时出现问题

python - 为什么在简单用例中子类化 multiprocessing 的 BaseManager?

python - 使用 Splinter 操纵浏览器(窗口)大小

java - 循环下拉网络驱动程序

python - 测试python中是否存在互联网连接

python - Pycharm/Python 中 = 后的(自动)缩进

python - 从字符串列表中选择数字

testing - Selenium 发送文本