我看到了类似的问题,但没有发现它们对这个基本案例有帮助。如果答案已经存在,请告诉我。
这有效:
driver = webdriver.Firefox()
driver.get(start_url)
time.sleep(3)
target = driver.find_element_by_xpath('//span[contains(string(), "my search text")]')
target.click()
这不是:
driver = webdriver.Firefox()
driver.get(start_url)
time.sleep(3)
targets = driver.find_elements_by_xpath('//span[contains(string(), "my search text")]')
for target in targets:
target.click()
我收到错误消息
AttributeError: 'dict' object has no attribute 'click'
我理解错误消息,但无法解决。 targets
看起来像这样
[{'element-6066-11e4-a52e-4f735466cecf': 'f23eba0d-cc6d-3a43-9fce-f2ad47bd549d'},
{'element-6066-11e4-a52e-4f735466cecf': '34afe1f2-1355-6f4a-80fe-1003287e9b68'},
{'element-6066-11e4-a52e-4f735466cecf': '10daa515-75ad-1749-a3c9-fe82fd8c4464'},
{'element-6066-11e4-a52e-4f735466cecf': '14f92352-7ab9-e346-b8cb-2a1b3a5a622f'},
{'element-6066-11e4-a52e-4f735466cecf': '473a12b1-7739-9f40-9089-0a85c0c80dbf'},
{'element-6066-11e4-a52e-4f735466cecf': '990aceb7-4090-ef4b-8ed9-58a7dea66388'},
{'element-6066-11e4-a52e-4f735466cecf': '7b21585a-0bdd-cc47-b2ae-dd100ba4f6da'},
{'element-6066-11e4-a52e-4f735466cecf': '6ecda3e0-82d9-1c44-b848-f32adaea5df6'},
{'element-6066-11e4-a52e-4f735466cecf': 'd8394f7b-3c3d-b242-9b44-465de8db15c5'},
{'element-6066-11e4-a52e-4f735466cecf': 'e496bb96-f0a4-b647-8a04-a7f364eebb53'}]
相比之下,这就是target
在第一个例子中的样子:
<selenium.webdriver.firefox.webelement.FirefoxWebElement (session="ba59bda2-535e-514e-86af-4e1808b5dea4", element="93458948-946c-684e-8f90-410bf67f4be5")>
答案 0 :(得分:0)
我遇到了同样的问题,因为我想取消关注我的 LinkedIn 帐户上的所有兴趣。
当我尝试公司 [0] 时,它返回 0,但对于其他公司,它正在返回
对于公司 1 中的公司: company.click()
它不见了,尝试通过循环查找列表中的杂乱值。