Python Selenium webdriver可以';t定位元素(它不隐藏,它不在子帧内)
我需要与包含以下html代码的页面交互:Python Selenium webdriver可以';t定位元素(它不隐藏,它不在子帧内),python,python-2.7,selenium,selenium-webdriver,Python,Python 2.7,Selenium,Selenium Webdriver,我需要与包含以下html代码的页面交互: <a data-refineby="customDateRange" class="toggleControl flushToggleControl navToggleControl">Specific Dates</a> <div class="navTabDropDown customDateFilter"> <form> <
<a data-refineby="customDateRange" class="toggleControl flushToggleControl navToggleControl">Specific Dates</a>
<div class="navTabDropDown customDateFilter">
<form>
<div>
<span class="dateLabel">From:</span>
<input type="text" name="fromMonth" class="month" id="fromMonth" value="MM" maxlength="2" /> /
<input type="text" name="fromDay" class="day" id="fromDay" value="DD" maxlength="2" /> /
<input type="text" name="fromYear" class="year" id="fromYear" value="YYYY" maxlength="4" />
</div>
<div>
<span class="dateLabel">To:</span>
<input type="text" name="toMonth" class="month" id="toMonth" value="MM" maxlength="2" /> /
<input type="text" name="toDay" class="day" id="toDay" value="DD" maxlength="2" /> /
<input type="text" name="toYear" class="year" id="toYear" value="YYYY" maxlength="4" />
</div>
<div class="customFilterFooter">
<a class="applyCustomFilter">Refine Search</a>
</div>
</form>
</div>
</li>
webdriver正确填写了日/月/年字段,但随后找不到“优化搜索”按钮。以下是我得到的:
Traceback (most recent call last):
File "nyt.py", line 170, in <module>
nyt(1, years1, 1, path)
File "nyt.py", line 149, in nyt
browser.find_element_by_link_text("Refine Search").click()
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 246, in find_element_by_link_text
return self.find_element(by=By.LINK_TEXT, value=link_text)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 680, in find_element
{'using': by, 'value': value})['value']
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 165, in execute
self.error_handler.check_response(response)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 164, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: u'Unable to locate element: {"method":"link text","selector":"Refine Search"}' ; Stacktrace:
at FirefoxDriver.prototype.findElementInternal_ (file:///var/folders/CQ/CQ1pELFuECu0jHex28Y-tU+++TI/-Tmp-/tmpOR8AB5/extensions/fxdriver@googlecode.com/components/driver_component.js:8899)
at fxdriver.Timer.prototype.setTimeout/<.notify (file:///var/folders/CQ/CQ1pELFuECu0jHex28Y-tU+++TI/-Tmp-/tmpOR8AB5/extensions/fxdriver@googlecode.com/components/driver_component.js:396)
回溯(最近一次呼叫最后一次):
文件“nyt.py”,第170行,在
纽约时报(1年,1年,路径)
文件“nyt.py”,第149行,以nyt表示
浏览器。通过链接文本查找元素(“优化搜索”)。单击()
文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site packages/selenium/webdriver/remote/webdriver.py”,第246行,按链接查找元素
返回self.find\u元素(by=by.LINK\u TEXT,value=LINK\u TEXT)
文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site packages/selenium/webdriver/remote/webdriver.py”,第680行,在find_元素中
{'using':by'value':value})['value']
文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site packages/selenium/webdriver/remote/webdriver.py”,执行中第165行
self.error\u handler.check\u响应(响应)
文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site packages/selenium/webdriver/remote/errorhandler.py”,第164行,在check_响应中
引发异常类(消息、屏幕、堆栈跟踪)
selenium.common.exceptions.NoSuchElementException:Message:u'无法定位元素:{“方法”:“链接文本”,“选择器”:“优化搜索”}';堆栈跟踪:
在FirefoxDriver.prototype.findelement内部(file:///var/folders/CQ/CQ1pELFuECu0jHex28Y-tU+++TI/-Tmp-/tmpOR8AB5/扩展/fxdriver@googlecode.com/components/driver_component.js:8899)
在fxdriver.Timer.prototype.setTimeout/尝试以下操作:
browser.find_element_by_xpath("//a[@class='applyCustomFilter' and text() = 'Refine Search']").click()
你想找工作吗?然后我可以给你,让它工作。。。告诉我。当事情不起作用时……换一种方式……)如果你想让我知道的话…不管你做了什么,宝贝!谢谢你的密码,巴拜。唉,网站现在已经关闭了。一旦它再次运行,我将尝试你的解决方案。@ThiagoMarzagão我的荣幸…:)
browser.find_element_by_xpath("//a[@class='applyCustomFilter' and text() = 'Refine Search']").click()