我正在尝试提取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,但不会对其执行任何操作。我该怎么办??
您需要将焦点更改为新标签,因为它们通常会在后台打开。然后,您需要抓住当前当前选项卡的句柄。
这在这里描述:
> 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)
我需要在浏览器选项卡之间切换,使用以下代码, 它有时只是正常工作,但有时表现出异常。有谁能建议我使用Java在一个窗口内切换选项卡的其他说明吗。
确切错误消息:线程“main”java中出现异常。lang.IndexOutOfBoundsException:索引:1,大小:1(java)。util。ArrayList。rangeCheck(ArrayList.java:653) 代码段:
问题内容: 我需要在浏览器标签之间切换,使用以下代码, 它有时仅工作正常,但有时却显示异常。任何人都可以建议我使用Java在单个窗口中切换选项卡是否还有其他说明。 问题答案: 您必须在此处使用窗口句柄功能。这是Java中的示例工作代码: 希望这可以帮助!
我写了示例代码,但它不起作用。还观察到2个选项卡只有1个窗口句柄。如何再次切换到父页签?
将Selenium WebDriver与Java结合使用。我正在尝试自动化一个功能,其中我必须打开一个新的选项卡,在那里做一些操作,并回到以前的选项卡(父)。我用了开关手柄,但它不起作用。还有一件奇怪的事情,两个选项卡有相同的窗口句柄,因此我不能在选项卡之间切换。 然而,当我尝试使用不同的Firefox窗口时,它都能工作,但是对于tab它就不行了。 请帮帮我.我如何切换标签。或者我如何切换选项卡而
因此,我正在测试一个web应用程序,我必须打开一个新的选项卡,切换到它,做一些输入,然后切换回第一个选项卡,这不止一次。我尝试通过以下方式打开新选项卡: 这将导致出现以下警报: 但我无法通过Appium的自动化来接受它。我尝试过的事情: 使用以下功能:“safariAllowPopups”和“AutoAcceptablers” 在iOS sim卡中更改safari的相应设置 .switchTo()