我正在基于python的硒自动化测试中工作,并且是该技术的新手。我需要单击下面的代码中的“活动报告”。
<a href="../reports/ActivityReport.aspx">
<div class="col-sm-2 col-md-2 col-lg-2 menu-button">Activity Report</div>
</a> ---
相同的班级名称
<div class="col-sm-2 col-md-2 col-lg-2 menu-button">Reports</div>
<div class="col-sm-2 col-md-2 col-lg-2 menu-button">Activity Report</div>
在尝试单击它时,我遇到了这个问题。请给我一个解决方案。 预先感谢。
Traceback (most recent call last):
File "F:/Python/test1/T1.py", line 21, in <module>
driver.find_element_by_css_selector('#form1 > div:nth-child(3) >
div.row
> div > a:nth-child(2) > div').click()
File "C:\Python36\selenium\webdriver\remote\webelement.py", line 80, in
click
self._execute(Command.CLICK_ELEMENT)
File "C:\Python36\selenium\webdriver\remote\webelement.py", line 633,
in _execute
return self._parent.execute(command, params)
File "C:\Python36\selenium\webdriver\remote\webdriver.py", line 321, in
execute
self.error_handler.check_response(response)
File "C:\Python36\selenium\webdriver\remote\errorhandler.py", line 242,
in check_response
raise exception_class(message, screen, stacktrace)
答案 0 :(得分:0)
driver.find_element_by_css_selector(css selector) # replace 'css selector' according to below
这使用了一个称为css选择器的东西,它可以唯一地标识网站中的元素。要找到我建议使用Google Chrome或Chromium的唯一CSS选择器,我还没有找到如何在Firefox中获取CSS选择器的方法。在Chrome中打开所需的网站,然后按 CTRL + Shift + C 打开检查器工具,然后单击要脚本执行的元素点击。之后,右键单击以蓝色突出显示的元素,然后选择Copy > Copy selector
。这是一个屏幕截图,以防万一太麻烦了要选择哪个菜单项。
答案 1 :(得分:0)
以下给出的代码段最适合您:
driver.find_element_by_xpath("//div[@class='col-sm-2 col-md-2 col-lg-2 menu-button'][contains(text(),'Activity R')]")
如果上面的方法不起作用,下面的方法也可以:
lst_menu = driver.find_elements_by_xpath("//div[@class='col-sm-2 col-md-2 col-lg-2 menu-button']")
for item in lst_menu:
if (item.get_attribute("text") == 'Activity Report'):
item.click()
答案 2 :(得分:0)
尝试
driver.find_element_by_xpath("//div[contains(text(), 'Activity Report')]")
或更激进的
driver.find_element_by_xpath("//div[contains(@class, 'col-sm-2') and contains(@class ,'col-md-2') and contains(@class ,'col-lg-2') and contains(@class, 'menu-button') and contains(text(), 'Activity Report')]")