我正在尝试编写代码以使用 selenium 自动创建 gmail。我要查找的项目是以下网址中输入的名字:
我使用了 wait 但它返回了一个 TimeoutException 错误。 另外,假设我想使用隐式等待,我该怎么做?
谢谢
class BotCreator:
def __init__(self, firstname, lastname):
self.firstname = firstname
self.lastname = lastname
self.driver = webdriver.Firefox(executable_path=r'A:\Python Projects\The InstaBOT/geckodriver')
def shutdown(self):
self.driver.close
def gmail_creator(self, n_bots):
for n in range(n_bots):
global email
email = {}
driver = self.driver
wait = WebDriverWait(driver, 10)
driver.get('https://www.google.com/intl/en-GB/gmail/about/')
driver.find_element_by_xpath('//a[@title="Create an account"]').click()
wait.until(ec.new_window_is_opened(driver.window_handles))
after = driver.window_handles[1]
driver.switch_to.window(after)
element = wait.until(ec.element_to_be_clickable((By.XPATH, '//input[@id="firstName"]')))
element.send_keys('awsd')
return email
gmail_t = BotCreator('John', 'Hoffinsky')
gmail_t.gmail_creator(1)
最佳答案
该页面上实际上有几 (4) 个元素具有相同的 XPath。 尝试使用具有以下 XPath 的特定一个:
(//a[@title="Create an account"])[1]
您的 XPath 使用 Chrome 扩展 ChroPath 返回 4 个元素。
关于隐式等待的问题: 您已经在使用隐式等待。隐式等待设置告诉 Selenium 轮询指定的时间量,直到元素可用。如果需要,您可以更改超时:
driver.implicitly_wait(15)
这link可能会有帮助。
关于python - Selenium 找不到元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58082116/