GVKun编程网logo

在选项卡之间切换并使用Selenium对单个对象执行操作(在切换选项卡可以进行)

15

关于在选项卡之间切换并使用Selenium对单个对象执行操作和在切换选项卡可以进行的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于EclipseHotKey:如何在选项卡之间切换?、jav

关于在选项卡之间切换并使用Selenium对单个对象执行操作在切换选项卡可以进行的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于Eclipse HotKey:如何在选项卡之间切换?、java – 如何等待警报框在Selenium中执行操作?、jquery – 在引导选项卡之间切换时保持滚动位置、Python —使用Selenium打开多个选项卡等相关知识的信息别忘了在本站进行查找喔。

本文目录一览:

在选项卡之间切换并使用Selenium对单个对象执行操作(在切换选项卡可以进行)

在选项卡之间切换并使用Selenium对单个对象执行操作(在切换选项卡可以进行)

我正在尝试提取URL,将其打开到新选项卡中,然后执行一些操作。我的代码是-

urls = self.driver.find_elements_by_xpath(''//div[@id="maincontent"]/table/tbody/tr/td//a[@href]'')        for url in urls:            try:                href = url.get_attribute("href")[28:]                print href                actions = ActionChains(self.driver)                url_1 = self.driver.find_element_by_xpath(''//*[@href="''+href+''"]'')                actions.key_down(Keys.CONTROL).click(url_1).key_up(Keys.CONTROL).perform()            except Exception, e:                print e        actions1 = ActionChains(self.driver)              actions1.key_down(Keys.CONTROL).key_down(Keys.TAB).key_up(Keys.TAB).key_up(Keys.CONTROL).perform()        print "hi"        show_report = self.driver.find_element_by_xpath(''//*[@value="Show Report(s)"]'')        show_report.click()

它会在新选项卡中打开URL,但不会对其执行任何操作。我该怎么办??

答案1

小编典典

您需要将焦点更改为新标签,因为它们通常会在后台打开。然后,您需要抓住当前当前选项卡的句柄。

这在这里描述:

>     import selenium.webdriver as webdriver>     import selenium.webdriver.support.ui as ui>     from selenium.webdriver.common.keys import Keys>     from time import sleep  >  >     browser = webdriver.Firefox()>     browser.get(''https://www.google.com?q=python#q=python'')>     first_result = ui.WebDriverWait(browser, 15).until(lambda browser:> browser.find_element_by_class_name(''rc''))>     first_link = first_result.find_element_by_tag_name(''a'')>  >     # Save the window opener (current window, do not mistaken with tab...> not the same)>     main_window = browser.current_window_handle>  >     # Open the link in a new tab by sending key strokes on the element>     # Use: Keys.CONTROL + Keys.SHIFT + Keys.RETURN to open tab on top of the> stack>     first_link.send_keys(Keys.CONTROL + Keys.RETURN)>  >     # Switch tab to the new tab, which we will assume is the next one on the> right>     browser.find_element_by_tag_name(''body'').send_keys(Keys.CONTROL +> Keys.TAB)>  >     # Put focus on current window which will, in fact, put focus on the> current visible tab>     browser.switch_to_window(main_window)>  >     # do whatever you have to do on this page, we will just got to sleep for> now>     sleep(2)>  >     # Close current tab>     browser.find_element_by_tag_name(''body'').send_keys(Keys.CONTROL + ''w'')>  >     # Put focus on current window which will be the window opener>     browser.switch_to_window(main_window)

Eclipse HotKey:如何在选项卡之间切换?

Eclipse HotKey:如何在选项卡之间切换?

如何在 Eclipse 中打开的窗口之间切换?有Ctrl+ F6,但它问我想要哪一个,但我想像浏览器中的选项卡或操作系统(Cmd/
Win+ Tab)中的窗口一样切换它,而无需从列表中选择文件。如何在 Eclipse 中做这个简单的事情?

我试图为事件分配热键:

  • forward
  • forward history
  • next page

但它不按我想要的方式工作。

答案1

小编典典
  • CTRL+ E(用于编辑器列表)
  • CTRL+ F6(用于通过列表切换到下一个编辑器)
    您可以为“下一个编辑器”键分配另一个快捷方式。

是两个官方快捷方式,但它们都涉及正在显示的列表。

CTRL+ Page Up/ CTRL+Page Down可以在不显示列表的情况下循环编辑器。

最后一组快捷键的有趣之处在于:
它们没有列在要定义的 Eclipse Keys 快捷键中。
它们可以从多页编辑器继承,使它们成为特定于操作系统的快捷方式


关于 Mac OS (OSX) 上的快捷方式,在 2011 年 9 月抱怨无法重新映射CTRL+ Page Up/ CTRL+ Page Down:

它让我发疯,无法像在 OS X (⌘-Left和⌘- Right)中几乎所有其他选项卡式程序中那样翻阅打开的选项卡。

嗯,在 2012 年 3 月,回答:

, 我刚刚下载了最新版本的 Eclipse (3.7+)。在编辑器中,我已经能够将“上一个/下一个选项卡”绑定到(⌘-Left和⌘- Right),我很确定我以前做不到。
所以我猜他们听到了你的声音。
它的工作方式与您期望的一样,标签从左到右,反之亦然,而不是基于历史记录或类似的废话。

证实:

哇哦,选择“Editing Java Source”真的有效
现在,不幸的是,这意味着如果我导航到非 Java 文件(JSP、XML、JS 等),我就是 SOL。
解决方法是为这对“复制命令”,然后选择我想要的所有“时间”
到目前为止,它至少可以很好地处理 Java 和 JSP 文件。
这是一个主要的 PITA 设置,但这只是一次性的事情。

他导出的首选项可在此处供您尝试。
导入后,您应该会看到所有相关类型的文档:

Mac OS 键绑定

java – 如何等待警报框在Selenium中执行操作?

java – 如何等待警报框在Selenium中执行操作?

我按下取消按钮比根据我的代码检查一些文本.在Chrome和Firefox中它工作正常但在IE中需要时间在警报框上执行操作,但代码移动到下一行.

所以我想要一些代码停止,直到操作在警告框中执行,然后进入下一步.我正在使用硒进行自动化测试.

请找一段代码:

Alert al = driver.switchTo().alert();
al.accept();

wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath(".//*[@id='content-body-full']/p[1]")));
assertEquals("Your cancellation request has been successfully executed.",driver.findElement(By.xpath(".//*[@id='content-body-full']/p[1]")).getText().toString());

解决方法

您希望等到警报出现后再切换到它,类似于第3行. Reference.

编辑:尝试:

new webdriverwait(driver,60)
        .ignoring(NoAlertPresentException.class)
        .until(ExpectedConditions.alertIsPresent());

Alert al = driver.switchTo().alert();
al.accept();

jquery – 在引导选项卡之间切换时保持滚动位置

jquery – 在引导选项卡之间切换时保持滚动位置

我有Bootstrap选项卡,在使用 Malihu custom content scrollbar plugin覆盖浏览器滚动条的窗格之间切换.但是,单击不同的选项卡时,不会保留上次查看选项卡时的滚动位置.窗格的滚动位置返回到顶部.有什么我可以做的来保持滚动位置?

我创造了一个小提琴来说明问题:
http://jsfiddle.net/zfh3u37k/3/

var container1 = $('.tab-body');

for (var i = 0; i < 500; i++) {
  container1.append("<p>" + i + "</p>");
}

$(".tab-body").mCustomScrollbar({
  theme: 'minimal-dark',alwaysShowScrollbar: 0,autoHideScrollbar: true,advanced: {
    updateOnContentResize: true
  },mouseWheel: {
    scrollAmount: 150
  },scrollInertia: 350
});
.tab-body {
  height: 200px;
  width: 200px;
  padding: 15px;
  border: 1px solid black;
  max-height: 200px;
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/malihu-custom-scrollbar-plugin/3.0.0/jquery.mCustomScrollbar.min.css" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/malihu-custom-scrollbar-plugin/3.0.0/jquery.mCustomScrollbar.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>

<ul>
  <li><a data-toggle="tab" href="#home">Home</a></li>
  <li><a data-toggle="tab" href="#menu1">Menu 1</a></li>
  <li><a data-toggle="tab" href="#menu2">Menu 2</a></li>
</ul>

<div>
  <div id="home">
    <div>
    </div>
  </div>
  <div id="menu1">
    <div>
    </div>
  </div>
  <div id="menu2">
    <div>
    </div>
  </div>
</div>

解决方法

请检查以下解决方案,它可以单独工作并支持每个标签:

$(".tab-body").mCustomScrollbar({
  theme: 'minimal-dark',scrollInertia: 350,callbacks: {
    onScroll: function() {
        var closestTabId = $(this).closest('.tab-pane').attr('id');
      $('[data-toggle="tab"][href="#'+closestTabId+'"]').data('scrolled',$(this).find('.mCSB_container').css('top'));
    }
  }
})

$('a[data-toggle="tab"]').on('shown.bs.tab',function(e) {

   console.log($(e.target).data());

  $('.tab-pane.active'+$(e.target).attr('href')+' .mCSB_container').css('top',$(e.target).data('scrolled'));
});

Fiddle Link

Python —使用Selenium打开多个选项卡

Python —使用Selenium打开多个选项卡

我正在使用Python。我正在尝试在Chrome上打开两个标签,每个标签都指向不同的网站。这是我的代码:

from selenium import webdriverfrom selenium.webdriver.common.keys import Keysimport timebrowser=webdriver.Chrome()browser.get(''http:/reddit.com'')browser.find_element_by_tag_name(''body'').send_keys(Keys.CONTROL + ''t'')time.sleep(3)browser.get(''http://bing.com'')

当我运行它时,第一个标签页打开到reddit.com,然后另一个标签页打开到我的默认网页,然后在原始标签页中打开bing.com。我希望第一个选项卡转到Reddit,第二个选项卡转到bing,但browser.get(''website'')仅作用于第一个选项卡。

答案1

小编典典

像这样为python尝试:

browser=webdriver.Chrome()browser.get(''http:/reddit.com'')window_before = driver.window_handles[0]browser.find_element_by_tag_name(''body'').send_keys(Keys.CONTROL + ''t'')window_after = driver.window_handles[1]driver.switch_to_window(window_after)time.sleep(3)browser.get(''http://bing.com'')

今天的关于在选项卡之间切换并使用Selenium对单个对象执行操作在切换选项卡可以进行的分享已经结束,谢谢您的关注,如果想了解更多关于Eclipse HotKey:如何在选项卡之间切换?、java – 如何等待警报框在Selenium中执行操作?、jquery – 在引导选项卡之间切换时保持滚动位置、Python —使用Selenium打开多个选项卡的相关知识,请在本站进行查询。

本文标签: