[英]python selenium click nth element
下面是檢查代碼,當鼠標位於圖像上方時,基本上我想要點擊圖像....
<ul id="product-list">
<li class="product one-col new">
<ul>
<li class="image" title="sample image">
<a href="#product/1d77e790-f74a-3859-97db-c513cbece39c">
<img width="" height="" alt="" src="/content/images/1.jpg"></img>
<span class="new"> … </span>
<span class="hover"></span>
</a>
<p class="retailer"> … </p>
<p class="brand"></p>
</li>
<li class="price"> … </li>
<li class="name" title="sample image"> … </li>
<li class="first-seen"> … </li>
</ul>
</li>
<li class="product one-col new"> … </li>
<li class="product one-col new"> … </li>
<li class="product one-col new"> … </li>
我正在使用python selenium,並嘗試了下面的單擊span(懸停)鏈接
browser.find_element_by_css_selector("ul#product-list > :first-child > ul > li.image > a > span.hover ").click
但這不起作用......任何想法?
更新 :
browser.find_element_by_css_selector("ul#product-list > :first-child > ul > li.image > a > span.hover ").click()
File "/usr/lib/python2.7/site-packages/selenium-2.35.0-py2.7.egg/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:
at fxdriver.preconditions.visible (file:///tmp/tmp6Pgi9F/extensions/fxdriver@googlecode.com/components/command_processor.js:8231)
at DelayedCommand.prototype.checkPreconditions_ (file:///tmp/tmp6Pgi9F/extensions/fxdriver@googlecode.com/components/command_processor.js:10823)
at DelayedCommand.prototype.executeInternal_/h (file:///tmp/tmp6Pgi9F/extensions/fxdriver@googlecode.com/components/command_processor.js:10840)
at DelayedCommand.prototype.executeInternal_ (file:///tmp/tmp6Pgi9F/extensions/fxdriver@googlecode.com/components/command_processor.js:10845)
at DelayedCommand.prototype.execute/< (file:///tmp/tmp6Pgi9F/extensions/fxdriver@googlecode.com/components/command_processor.js:10787)
更新:
這也行不通
browser.find_element_by_css_selector("ul#product-list > :first-child > ul > li.image > a ").click()
更新 :
還嘗試了動作鏈,鼠標點擊..但沒有運氣..
element = browser.find_element_by_css_selector("ul#product-list > :first-child > ul > li.image")
hov = ActionChains(browser).move_to_element(element)
hov.click()
解決:最后這個工作......
element_to_hover_over = driver.find_element_by_css_selector("ul#product-list > :first-child ")
hover = ActionChains(driver).move_to_element(element_to_hover_over)
hover.perform()
if "" == driver.find_element_by_css_selector("span.hover").text:
driver.find_element_by_css_selector("span.hover").click()
你的代碼缺失()
。 如果沒有()
,則不會調用click
方法。
browser.find_element_by_css_selector("ul...span.hover ").click()
# ^^
element = browser.find_element_by_css_selector("ul#product-list > :first-child > ul > li.image > a > span.hover ")
browser.execute_script("arguments[0].innerText = 'asdf';", element)
element.click()
這工作:
element_to_hover_over = driver.find_element_by_css_selector("ul#product-list > :first-child ")
hover = ActionChains(driver).move_to_element(element_to_hover_over)
hover.perform()
if "" == driver.find_element_by_css_selector("span.hover").text:
driver.find_element_by_css_selector("span.hover").click()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.