如何替换ID';谁在python中使用selenium?

如何替换ID';谁在python中使用selenium?,python,selenium,outlook,automation,Python,Selenium,Outlook,Automation,我正在尝试在Outlook上使用Python中的Selenium自动化电子邮件创建过程,并且某些输入ID的替代项(如名字的替代项)在“TextField64”和“TextField65”之间交替。我似乎不知道如何让我的代码检查“TextField64”,如果没有,检查“TextField65” 我曾尝试使用按css名称查找元素、按css选择器查找元素,但它们都是交替的,我发现按id查找元素更容易 if len (driver.find_element_by_id('TextField64'))=

我正在尝试在Outlook上使用Python中的Selenium自动化电子邮件创建过程,并且某些输入ID的替代项(如名字的替代项)在“TextField64”和“TextField65”之间交替。我似乎不知道如何让我的代码检查“TextField64”,如果没有,检查“TextField65”

我曾尝试使用按css名称查找元素、按css选择器查找元素,但它们都是交替的,我发现按id查找元素更容易

if len (driver.find_element_by_id('TextField64'))==0:
    First = driver.find_element_by_id('TextField65')

elif len (driver.find_element_by_id('TextField65'))==0:
    First = driver.find_element_by_id('TextField64')
当它运行第一行而不检查else行时,我得到这个。 “第81行,在 如果len(driver.find_element_by_id('TextField64'))==0:


它应该检查else行并相应地设置“First”变量。

WebElement
没有
len()

要检查长度计数0,需要使用
驱动程序。通过\u id()查找\u元素。

请尝试下面的代码

if len(driver.find_elements_by_id('TextField64'))==0:
    First = driver.find_element_by_id('TextField65')

elif len(driver.find_elements_by_id('TextField65'))==0:
    First = driver.find_element_by_id('TextField64')

只需使用CSS选择器和OR运算符

First = driver.find_element_by_css_selector("TextField64,TextField65")

欢迎来到SO!!请阅读并提供正确的可复制示例
find_elements\u by_id()
返回
WebElement
s的列表。您可以检查此列表是否为空,以确定要使用哪个ID。为了使代码更加清晰,以牺牲清晰度为代价,可以省略对0(即
==0
)的检查。是否没有来自下一个投票者的反馈?如果你没有留下任何评论指出我应该修复什么,我该如何改进这个和其他答案?