ওয়েবড্রাইভার এক্সসেপশন: এলিমেন্টটি বিন্দুতে ক্লিকযোগ্য নয় (x, y)
এটি একটি টিপিক্যাল হয় org.openqa.selenium.WebDriverException যা প্রসারিত java.lang.RuntimeException ।
এই ব্যতিক্রম ক্ষেত্রগুলি হ'ল:
- BASE_SUPPORT_URL :
protected static final java.lang.String BASE_SUPPORT_URL
- DRIVER_INFO :
public static final java.lang.String DRIVER_INFO
- সেশন_আইডি :
public static final java.lang.String SESSION_ID
আপনার পৃথক ব্যবহারের ক্ষেত্রে, ত্রুটিটি সব বলে:
WebDriverException: Element is not clickable at point (x, y). Other element would receive the click
এটা তোলে আপনার কোড ব্লক থেকে স্পষ্ট যে আপনি সংজ্ঞায়িত আছে waitযেমন WebDriverWait wait = new WebDriverWait(driver, 10);কিন্তু আপনি আহ্বান করা হয় click()উপাদান পদ্ধতি সামনে ExplicitWaitহিসেবে খেলার মধ্যে আসে until(ExpectedConditions.elementToBeClickable)।
সমাধান
ত্রুটি Element is not clickable at point (x, y)বিভিন্ন কারণ থেকে উদ্ভূত হতে পারে। আপনি নিম্নলিখিত পদ্ধতির যে কোনও একটি দ্বারা তাদের সম্বোধন করতে পারেন:
1. জাভাস্ক্রিপ্ট বা এজেএক্স কল উপস্থিত থাকার কারণে এলিমেন্ট ক্লিক হচ্ছে না
Actionsক্লাস ব্যবহার করার চেষ্টা করুন :
WebElement element = driver.findElement(By.id("navigationPageButton"));
Actions actions = new Actions(driver);
actions.moveToElement(element).click().build().perform();
2. উপাদানটি ভিউপোর্টের মধ্যে না হওয়ায় ক্লিক করা হচ্ছে না
JavascriptExecutorভিউপোর্টের মধ্যে উপাদান আনতে ব্যবহার করার চেষ্টা করুন :
WebElement myelement = driver.findElement(By.id("navigationPageButton"));
JavascriptExecutor jse2 = (JavascriptExecutor)driver;
jse2.executeScript("arguments[0].scrollIntoView()", myelement);
৩. উপাদানটি ক্লিকযোগ্য হওয়ার আগে পৃষ্ঠাটি সতেজ হয়ে উঠছে।
এই ক্ষেত্রে প্রবৃত্ত ExplicitWait অর্থাত WebDriverWait যেমন বিন্দু 4 উল্লেখ করেছে।
৪) এলিমেন্টটি ডিওমে উপস্থিত রয়েছে তবে ক্লিকযোগ্য নয়।
এক্ষেত্রে উপাদানটি ক্লিকযোগ্য হতে পারে তার জন্য সেট দিয়ে এক্সপ্রেসওয়াইট প্ররোচিত করুন :ExpectedConditionselementToBeClickable
WebDriverWait wait2 = new WebDriverWait(driver, 10);
wait2.until(ExpectedConditions.elementToBeClickable(By.id("navigationPageButton")));
5. উপাদান উপস্থিত কিন্তু অস্থায়ী ওভারলে রয়েছে।
এই ক্ষেত্রে, ওভারলে অদৃশ্য হওয়ার জন্য সেট ExplicitWaitদিয়ে প্ররোচিত করুন ।ExpectedConditionsinvisibilityOfElementLocated
WebDriverWait wait3 = new WebDriverWait(driver, 10);
wait3.until(ExpectedConditions.invisibilityOfElementLocated(By.xpath("ele_to_inv")));
E. এলিমেন্ট উপস্থিত রয়েছে তবে স্থায়ীভাবে ওভারলে রয়েছে।
JavascriptExecutorক্লিক করে সরাসরি উপাদানটিতে পাঠাতে ব্যবহার করুন।
WebElement ele = driver.findElement(By.xpath("element_xpath"));
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click();", ele);