【发布时间】:2021-11-24 11:39:15
【问题描述】:
我试图通过将一个值传递给一个字符串变量来选择它。但是得到 InvalidSelectorException: Message: invalid selector: An invalid or invalid selector was specified。
def Assignments(url,assignto,count):
sta = Select(driver.find_element_by_id("bulk_status"))
sta.select_by_value('Assigned')
sta = Select(driver.find_element_by_id("bulk_assigned_individual"))
sta.select_by_value(str(assignto))
Assignments(UrlForIssues[1],str(teammate),1)
UrlForIssues - 它是一个列表或 URL 队友 - 字符串变量 count 是为了别的,可以忽略。
现在的问题是当我运行程序时它会抛出异常。
InvalidSelectorException: Message: invalid selector: An invalid or illegal selector was specified
当我将一些字符串传递给函数 select_by_value() 时。喜欢:
select_by_value('abc')
它工作正常,只有将它作为变量传递时才会出现错误。
可用的选项集。
<select name="bulk_assigned_individual"id="bulk_assigned_individual">
<option value="brand-validator-queue">1 - bvq</option>
<option value="atmakb">98 - Bharath</option>
<option value="bvarn">98 - varun </option>
<option value="archawla">98 - Aryan </option>
<option value="jhiman">98 - Himanshu </option>
</select>
我已将所有值存储在一个文件中,并在一个列表中读取它。
team = open("team.txt",'r')
teammates = team.readlines()
然后在 for 循环中为我们拥有的所有选项调用 Assignments()。
for teammate in teammates:
Assignments(UrlForIssues[1],str(teammate),1)
【问题讨论】:
-
assignto的值是多少?你能在运行select_by_value之前把它打印出来吗?似乎 varassignto中有一个无效的字符导致无效的 css 选择器。 -
我尝试打印assignto,它打印的值正确。
-
你能分享一下select标签的html并指出你要选择什么选项吗?
-
你正在传递
teammate告诉我们你是如何在你的代码中定义的 -
在此之前
sta.select_by_value(str(assignto))放置一个调试器或简单地打印print(assignto)而不是str 然后打印print(type(assignto))并让我知道输出
标签: python-3.x selenium exception drop-down-menu css-selectors