重复单击硒中的元素

时间:2019-06-12 09:40:05

标签: python selenium

我已经在网页中找到了我需要的元素,并分别对它们进行了适当的命名。有没有一种方法可以稍后在测试脚本中按名称调用该元素并单击它,而不必再次定位该元素?

试图将find_element_by / .click()分成两行,所以我知道它可以引用我分配给该元素的名称。

costs = browser.find_element_by_css_selector('g:nth-child(2) > g > circle')
costs.click()

revenue = browser.find_element_by_css_selector('#chart-div-2 g:nth-child(1) > rect')
revenue.click()

(然后在执行这些步骤和一些类似操作之后,我尝试添加...。)

costs.click()
revenue.click()

消息:

  

'stale element reference:元素未附加到页面文档',但是我没有离开页面。

我想念什么

1 个答案:

答案 0 :(得分:1)

由于该元素已过时,您只需要再次引用它们即可。

所以在您的情况下:

costs = browser.find_element_by_css_selector('g:nth-child(2) > g > circle')
costs.click()
revenue = browser.find_element_by_css_selector('#chart-div-2 g:nth-child(1) > rect')
revenue.click()

# DO SOME STUFF

costs = browser.find_element_by_css_selector('g:nth-child(2) > g > circle')
costs.click()
revenue = browser.find_element_by_css_selector('#chart-div-2 g:nth-child(1) > rect')
revenue.click()

详细了解Stale Element Reference Exception