【问题标题】:Can we write python automation code for opening different url in each time, modifying the previous url?我们可以编写python自动化代码来每次打开不同的url,修改以前的url吗?
【发布时间】:2021-07-02 08:17:46
【问题描述】:

【问题讨论】:

  • 你想对提到的 URL 做什么?
  • 只在不同的标签中打开它们,没有别的。
  • 好的,看看下面的答案。应该适合你。

标签: python selenium automation


【解决方案1】:

将所有链接存储在如下列表中,然后有一个loop 并在里面使用driver.get() 打开一个链接,您所要确保的是,保留current window handle(这对于每个窗口)然后switch to

你可以这样做:

links = ["https://australiapopulation.com/lucifer-season-1-subtitles/", "https://australiapopulation.com/lucifer-season-2-subtitles/", "https://australiapopulation.com/lucifer-season-3-subtitles/"]
number_of_tabs = len(links)
count = 1
for link in links :
  driver.get(link)
  windows_before = driver.current_window_handle
  driver.execute_script("window.open('');")
  #WebDriverWait(driver, 10).until(EC.number_of_windows_to_be(number_of_tabs))
  new_window = driver.window_handles[count]
  count = count + 1
  driver.switch_to.window(new_window)
  sleep(3)

【讨论】:

  • 其实我要做的不是按顺序反击,我只是想修改链接如www.link.com/TRP00213/, www.link.com/BRP0021/, www .link.com/VRT001213/。 url 是一样的,我只是想修改一下,让它在不同的标签页中打开不同的页面
  • 可以在 / 之后自动获取数字的东西,假设我们可以准备一个包含 5 个这样唯一数字的列表 list = [TRP0001, PRO3215, QWS4569, TYR4569, ASD6548],现在我想要 URL与 www.link.com 相同,因为一次应该打开的 URL 是 www.link.com/TRP0001/ 第二应该是 www.link.com/PRO3215/ 等等。只想在链接中附加唯一的数字,以便它在每个选项卡中打开一个特定的文件。而且我不愿意只提供完整链接,只提供 TRP0001 列表中的唯一编号。
【解决方案2】:

提供的示例是用 Java 编写的,但用 Python 编写不会有问题。

首先,您需要至少将 URL 存储在列表或数组中。 然后通过 JS 执行器打开选项卡并循环它们:

String[] relativeUrls = {"url_1", "url_2", "url_3"};
JavascriptExecutor jse = (JavascriptExecutor) driver; // this is your driver object


ArrayList<String> tabs = new ArrayList<String>(driver.getWindowHandles());

for (int i = 0; i < relativeUrls.size(); i++) {
  jse.executeScript("window.open()");
  driver.switchTo().window(tabs.get(1));
  driver.navigate().to(driver.getCurrentUrl() + relativeUrls[i]);
  driver.close();
}

【讨论】:

  • 其实这个www.link.com/TRP00213/, www.link.com/BRP0021/, 可以自动取/后面的数字的东西,比如说我们可以准备5个这样的唯一数字的列表list = [TRP0001, PRO3215, QWS4569, TYR4569, ASD6548],现在我希望 URL 与 www.link.com 相同,因为一旦应该打开的 URL 是 www.link.com/TRP0001/ 第二应该是 www.link.com/PRO3215/ 等等。只想在链接中附加唯一的数字,以便它在每个选项卡中打开一个特定的文件。而且我不愿意只给出 TRP0001 列表中唯一编号的完整链接。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-03-07
  • 1970-01-01
  • 2014-07-05
  • 2020-06-15
  • 2019-05-29
  • 2020-12-13
  • 1970-01-01
相关资源
最近更新 更多