[英]Selenium Python - Product array page, how do dynamically click a product
saksoff5th.com是我正在使用的网站URL。 我通过主页上的“皮带”搜索,然后单击“男人”链接。 这将我带到男士皮带的产品系列页面。 我想单击阵列上的第二个产品,但出现错误。
我正在使用的代码是。 在这里,我试图将所有这些都放在列表中,然后单击页面上的第二个产品。
elemprodcl = browser.find_element_by_id('search-result-items')
Listprdcl= elemprodcl.find_elements_by_class_name('grid-tile')
elemprodcl2 = Listprdcl[1].find_element_by_class_name('product-tile')
elemprodcl3 = elemprodcl2.find_element_by_class_name('product-image')
elemprodcl4 = elemprodcl3.find_element_by_tag_name('a').click()
错误收到为:-
Traceback (most recent call last):
File "C:\Python27\Off5th_Guest_Checkout", line 39, in <module>
elemprodcl4 = elemprodcl3.find_element_by_tag_name('a').click()
File "C:\Python27\lib\selenium\webdriver\remote\webelement.py", line 59, in click
self._execute(Command.CLICK_ELEMENT)
File "C:\Python27\lib\selenium\webdriver\remote\webelement.py", line 369, in _execute
return self._parent.execute(command, params)
File "C:\Python27\lib\selenium\webdriver\remote\webdriver.py", line 164, in execute
self.error_handler.check_response(response)
File "C:\Python27\lib\selenium\webdriver\remote\errorhandler.py", line 164, in check_response
raise exception_class(message, screen, stacktrace)
ElementNotVisibleException: Message: u'Element is not currently visible and so may not be interacted with' ; Stacktrace:
好吧,你快到了。 您试图单击a
Web元素,在该位置应尝试单击img
。
因此,从您离开的地方继续:
elemprodcl4 = elemprodcl3.find_element_by_tag_name('a')
elemprodcl4.find_element_by_tag_name('img').click()
或仅通过使用单个CSS选择器即可:
browser.find_element_by_css_selector('.search-result-items li:nth-child(2) div > div > a').click()
CSS选择器语法说明-
.search-result-items
是类名称,因为文本前面带有一个点。 li
是上述类的后代(子代)。 nth-child
表示我们要从孩子列表(数组)中选择哪个孩子 div
和a
相似,它们是前面提到的选择器的子代
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.