从 JavaScript 函数 WebDriver 访问动态生成的 HREF
accessing dynamically generated href from a javascript function, webdriver
我有一个棘手的href想要访问。我无法对此URL进行硬编码,因为它是由页面生成的,我将使用该程序数年:
基类https://gist.github.com/codyc4321/724f05aca8f6775e2fc1 ( 感兴趣的access_link
)
class HCCDriver(FirefoxDriver):
def __init__(self, username="cchilders", password="mypw"):
super(HCCDriver, self).__init__(username=username, password=password, start_url="https://hccadvisor.hccfl.edu")
self.username = username
self.password = password
def login_testout(self):
driver = ChromeDriver()
driver.get("http://www.testout.com/")
login_a_tag = driver.access_link("hLogin")
我想要StartLogin()
生成的内容:
<a id="hLogin" class="blue-button" href="javascript:StartLogin();" style="margin: 0 0 0 8px; border-right: 0; float: none; vertical-align: middle">Login</a>
错误:
In [3]: h.login_testout()
---------------------------------------------------------------------------
WebDriverException Traceback (most recent call last)
<ipython-input-3-3c353756ce70> in <module>()
----> 1 h.login_testout()
/home/cchilders/scripts/my_scripting_library/webdriver/specific.py in login_testout(self)
119 driver = ChromeDriver()
120 driver.get("http://www.testout.com/")
--> 121 login_a_tag = driver.access_link("hLogin")
122
123 def access_class_search_screen_hcc(self, category="CTS", driver=None):
/home/cchilders/scripts/my_scripting_library/webdriver/general.pyc in access_link(self, search_text)
89 element = self.locate_element(search_text)
90 link = element.get_attribute('href')
---> 91 self.get(link)
92
93 def submit_form(self, search_text=None):
/home/cchilders/scripts/my_scripting_library/webdriver/general.pyc in get(self, url)
64
65 def get(self, url=None):
---> 66 self.driver.get(url)
67
68 @property
/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.pyc in get(self, url)
211 Loads a web page in the current browser session.
212 """
--> 213 self.execute(Command.GET, {'url': url})
214
215 @property
/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.pyc in execute(self, driver_command, params)
199 response = self.command_executor.execute(driver_command, params)
200 if response:
--> 201 self.error_handler.check_response(response)
202 response['value'] = self._unwrap_value(
203 response.get('value', None))
/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/errorhandler.pyc in check_response(self, response)
192 elif exception_class == UnexpectedAlertPresentException and 'alert' in value:
193 raise exception_class(message, screen, stacktrace, value['alert'].get('text'))
--> 194 raise exception_class(message, screen, stacktrace)
195
196 def _value_or_default(self, obj, key, default):
WebDriverException: Message: unknown error: unsupported protocol
(Session info: chrome=48.0.2564.109)
(Driver info: chromedriver=2.9.248304,platform=Linux 3.19.0-15-generic x86_64)
最糟糕的是,代码就像我使用 FirefoxDriver 一样工作,出于显而易见的原因,我更喜欢 chrome 进行功课。可以在 chrome 中访问此链接吗?谢谢
您也可以
单击链接并获取.current_url
:
element = self.locate_element(search_text)
element.click()
link = self.driver.current_url
好吧,这个描述让我非常困惑,但简而言之,如果你的页面上有一个<a>
标签,并且你想在javascript中获取href,只需做:
$("#hLogin").prop("href");
或
$("#hLogin").attr("href");
相关文章:
- 根据滚动位置动态更改href
- 将URL路径与<a>attr('href')来动态更新.active类
- 如何使fancybox href动态
- Javascript/jQuery链接/href补充的动态文本
- HTML href动态语法
- 如何动态更改href引用
- 如何在html href标记中动态放置当前网址
- 如何使用 JavaScript 动态点击“href 链接”
- 动态设置 href 标记
- 单击事件以获取 href 标记(动态创建)
- 将数据参数(不是查询参数)提供给 window.location.href ?创建动态文件
- 带有来自数据库的动态链接的花式框 href (asp.net)
- 在 Twitter Bootstrap 3.0 中动态设置弹出框值,并在滚动更新时使用 href
- 从 JavaScript 函数 WebDriver 访问动态生成的 HREF
- 将 HREF 添加到 JQuery 动态填充的选择
- 引导按钮组以动态更改文本、HREF 和图标 - JQuery
- AngularJS href 没有获得动态值
- 动态替换 href
- AngularJs的ng-href动态链接,作用域没有更新/工作
- Href动态链接