-2 python xpath python-2.7 selenium-webdriver
相关的 HTML
<div id="datepickerbox" class="ym-gbox-left">
<div class="datepick_label">
<div id="datepicker" class="hasDatepicker">
<div class="ui-datepicker-inline ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all" style="display: block;">
Run Code Online (Sandbox Code Playgroud)
我的代码
self.driver.find_element(By.XPATH('//*[@id="datepicker"]')).click()
dateWidget = self.driver.find_element(By.ID("ui-datepicker-div"))
rows = dateWidget.find_element_by_tag_name("tr")
columns = dateWidget.find_element_by_tag_name("td")
for cell in columns: self.driver.findElement(By.LINK_TEXT("20")).click()
Run Code Online (Sandbox Code Playgroud)
我收到的错误
self.driver.find_element(By.XPATH('//*[@id="datepicker"]')).click()
TypeError: 'str' object is not callable
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
根据手册的\xe2\x80\x9cLocation elements\xe2\x80\x9d 部分By.XPATH,似乎是一个字符串,正确的用法是这样的:
self.driver.find_element(By.XPATH, \'//*[@id="datepicker"]\')\nRun Code Online (Sandbox Code Playgroud)\n\n从错误消息来看这也是有意义的,因为您正在调用By.XPATH. 目前的消息来源也证实了这一点。
不幸的是,Selenium API 在不同平台上并不真正一致。您正在使用的语法,调用By.xpath()是由 Java 使用的,而在 C# 中,您还必须调用By.Xpath(). 因此,当您看到其他调用 it\xe2\x80\x99 的示例时,很自然地您会感到困惑,而在 Python 中,您突然需要传递它。因此,您不应该\xe2\x80\x99 盲目地相信您在互联网上找到的示例(例如这个),但始终检查它们是哪种语言。并检查有疑问的文档和/或来源。
| 归档时间: |
|
| 查看次数: |
9124 次 |
| 最近记录: |