【发布时间】:2022-01-19 17:09:28
【问题描述】:
href 内的链接是不断变化的,但是这个href 的xpath 总是一样的。 如何点击www.confirmationemail.com?
<div dir="ltr">
<p>exampleTEXT.</p>
<p><a href="www.confirmationemail.com" target="_blank">www.confirmationemail.com</a></p>
<p>exampleTEXT.</p>
<p>exampleTEXT,</p>
<p>exampleTEXT</p>
</div>
这是我正在处理的页面:https://www.minuteinbox.com/
流程如下:用从这里收到的邮件注册一个站点,收到邮件,登录到邮件,但是我不能点击邮件内容中的链接。
from selenium import webdriver
from time import sleep
import config2 as cf
from selenium.webdriver.support.select import Select
import selenium.webdriver.support.ui as ui
from selenium.webdriver.common.keys import Keys
from asyncio import sleep
import time
driver = webdriver.Chrome("C:\\ChromeDriver\\chromedriver.exe")
url = "https://www.minuteinbox.com/"
url2 = "EXAMPLE.COM"
driver.get(url)
element = driver.find_element_by_xpath("XPATH").text
print(element)
time.sleep(4)
driver.execute_script("window.open('');")
driver.switch_to.window(driver.window_handles[1])
driver.get(url2)
sec = driver.find_element_by_xpath("XPATH")
sec.click()
devam = driver.find_element_by_xpath("XPATH")
devam.click()
ad = driver.find_element_by_xpath("XPATH")
ad.send_keys("deneme")
soyad = driver.find_element_by_xpath("XPATH")
soyad.send_keys("test")
eMail = driver.find_element_by_css_selector("#user_email")
eMail.send_keys(element)
eMail2 = driver.find_element_by_css_selector("#user_email_confirmation")
eMail2.send_keys(element)
sifre = driver.find_element_by_css_selector("#user_password")
sifre.send_keys("PASS")
sifre2 = driver.find_element_by_css_selector("#user_password_confirmation")
sifre2.send_keys("PASS")
buton = driver.find_element_by_css_selector("SELECT")
buton.click()
hesapol = driver.find_element_by_css_selector("SELECT")
hesapol.click()
sleep(2)
driver.switch_to.window(driver.window_handles[0])
time.sleep(7)
bas = driver.find_element_by_css_selector("#schranka > tr:nth-child(1)")
bas.click()
time.sleep(1)
time.sleep(1)
SD = driver.switch_to.frame(driver.find_element_by_css_selector("iframe#iframeMail"))
time.sleep(5)
SD = driver.find_element_by_xpath("//a[contains(@href,'minuteinbox')]").click
driver.switch_to.default_content()
sd = 我把它放在这里只是为了能够把它写在代码部分
已解决
进口
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
bas = driver.find_element_by_css_selector("#schranka > tr:nth-child(1)")
bas.click()
time.sleep(3)
wait = WebDriverWait(driver, 10)
wait.until(EC.frame_to_be_available_and_switch_to_it((By.CSS_SELECTOR, "iframe[id='iframeMail']")))
print(driver.page_source)
link = driver.find_element_by_xpath("/html/body/div/p[2]/a")
link.click()
【问题讨论】:
-
href 里面的link 是不断变化的,但是这个href 的xpath 总是一样的: 你这是什么意思?
-
当我复制 href xpath 时它总是一样的,但每次我打开页面时它都是一个不同的链接
-
@Prophet 我试过但我得到这个错误:无法找到元素:{“method”:“xpath”,“selector”:“/html/body/div/p[2]/a "}
-
1) 可能你错过了延迟 2) 你能分享你所有的代码吗?如果可能的话,包括你正在尝试处理的页面的链接?
-
为什么你的代码从这个
driver.switch_to.window(driver.window_handles[0])开始?我们不知道你在此之前写了什么。
标签: python python-3.x selenium selenium-webdriver